1

我想将数据从函数传输到变量,但出现错误。

DECLARE @KullaniciID int

SET @KullaniciID = SELECT GetActivePersonelID

错误:

关键字“select”附近的语法不正确

功能 :

CREATE FUNCTION [dbo].[F15_GetActivePersonelID]
   (@P int)
RETURNS int
AS
BEGIN
    DECLARE @KullaniciID int

    SET @KullaniciID = (SELECT KullaniciID FROM IT15_Kullanicilar  
                        WHERE KullaniciKodu = dbo.F15_GetKullaniciConn ())

    RETURN (SELECT MAX(PersonelID) FROM IT01_Personel  
            WHERE KullaniciID = @KullaniciID)
END
4

1 回答 1

1

选项 1,通过 SET:

SET @KullaniciID = (SELECT [dbo].[F15_GetActivePersonelID](123))

选项 2,使用内联语法:

SELECT @KullaniciID = [dbo].[F15_GetActivePersonelID](123)

由于性能和缩放方面的已知问题,我建议避免在 SQL Server 中使用标量函数。不过,SQL Server 2019 有一些改进。

于 2020-10-15T13:09:21.320 回答