6

任何人都可以帮我在 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
4

3 回答 3

6

正确的语法应该是

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。

于 2012-11-28T10:49:32.873 回答
1
    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
于 2012-11-28T10:50:38.053 回答
0

尝试这样的事情:

创建函数 Get_RearEnd_Outflow(@I_TXN_ID INT)
返回整数
开始
  声明@V_COUNT INT;
    SET @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M);
  返回@V_COUNT;
结尾
于 2012-11-28T10:45:06.597 回答