任何人都可以帮我在 sql server 2012 中创建函数吗,我在 sql 中是新的,它显示错误 [在函数中无效使用副作用运算符“选择”]
CREATE FUNCTION Get_RearEnd_Outflow( @I_TXN_ID INT)
RETURNS int
AS BEGIN
DECLARE @V_COUNT INT
SELECT COUNT(*) INTO @V_COUNT FROM IRR_CHARGES_M
RETURN @V_COUNT
END
任何人都可以帮我在 sql server 2012 中创建函数吗,我在 sql 中是新的,它显示错误 [在函数中无效使用副作用运算符“选择”]
CREATE FUNCTION Get_RearEnd_Outflow( @I_TXN_ID INT)
RETURNS int
AS BEGIN
DECLARE @V_COUNT INT
SELECT COUNT(*) INTO @V_COUNT FROM IRR_CHARGES_M
RETURN @V_COUNT
END
正确的语法应该是
CREATE FUNCTION Get_RearEnd_Outflow( @I_TXN_ID INT)
RETURNS int
AS BEGIN
DECLARE @V_COUNT INT
SELECT @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M)
RETURN @V_COUNT
END
但是SET 是在 T-SQL 中分配变量的更好方法
SET @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M)
编辑 2:对于多个分配,您可以使用SELECT
对于多个刺客
SELECT @variableOne = someColumn, @variableTwo = someColumn from tblTable
编辑:来自关于 slect 的 MSDN 链接
对于分配变量,我们建议您使用 SET @local_variable 而不是 SELECT @local_variable。有关详细信息,请参阅 SET @local_variable。
CREATE FUNCTION Get_RearEnd_Outflow()
RETURNS int
AS
BEGIN
DECLARE @COUNT INT;
SET @COUNT =(SELECT COUNT(*) FROM IRR_CHARGES_M);
return @COUNT
END
GO
或使用:
CREATE FUNCTION Get_RearEnd_Outflow()
RETURNS int
AS
BEGIN
return (SELECT COUNT(*) FROM IRR_CHARGES_M)
END
GO
尝试这样的事情:
创建函数 Get_RearEnd_Outflow(@I_TXN_ID INT) 返回整数 开始 声明@V_COUNT INT; SET @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M); 返回@V_COUNT; 结尾