Sql server SQL函数错误[在函数中无效使用副作用运算符“select”)
有人能帮我在sql server 2012中创建函数吗?我是sql新手,它显示错误[在函数中无效使用副作用运算符'select'Sql server SQL函数错误[在函数中无效使用副作用运算符“select”),sql-server,Sql Server,有人能帮我在sql server 2012中创建函数吗?我是sql新手,它显示错误[在函数中无效使用副作用运算符'select' 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 F
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; SET @V_COUNT = (SELECT 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
然而,在T-SQL中分配变量
SET @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M)
编辑2:对于多个分配,您可以使用选择
用于多重ASIN
SELECT @variableOne = someColumn, @variableTwo = someColumn from tblTable
编辑:从MSDN链接关于slect
对于分配变量,我们建议您使用SET@local\u variable而不是SELECT@local\u variable。有关更多信息,请参见设置@local_变量
或使用:
CREATE FUNCTION Get_RearEnd_Outflow()
RETURNS int
AS
BEGIN
return (SELECT COUNT(*) FROM IRR_CHARGES_M)
END
GO
尾端流出。。。不是我想使用的函数:-+1表示正确答案。但是为什么设置是更好的方式呢?我能想到的唯一区别是,当您将变量指定给返回多行的select时,set将引发一个错误,select将变量指定给第一行。我添加了MSDN页面中的引号,并且set是ANSI to set variable,而select不是。你们也可以看看这个链接,亲爱的,当SQL select查询在上面的cREATE函数中有很多列时,我该怎么办STATEMENT@user1831355对于多列,必须使用SELECT。EDIT2是否回答了您的问题?亲爱的,当SQL select查询在上述创建函数语句中有许多列时,我该怎么办?不确定您的确切意思,但您可以用select替换select COUNT*,并用包含要计算的值的任何列替换。
CREATE FUNCTION Get_RearEnd_Outflow()
RETURNS int
AS
BEGIN
return (SELECT COUNT(*) FROM IRR_CHARGES_M)
END
GO