6

SQLサーバー2012で関数を作成するのを手伝ってくれる人はいますか?SQLの新しいIMエラーが表示されます[関数内での副作用演算子「選択」の無効な使用]

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

編集: selectに関するMSDNリンクから

変数を割り当てるには、SELECT @local_variable の代わりに SET @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

次のようなことを試してください:

CREATE FUNCTION Get_RearEnd_Outflow( @I_TXN_ID INT)
戻り値 int
はじめに
  DECLARE @V_COUNT INT;
    SET @V_COUNT = (SELECT COUNT(*) FROM IRR_CHARGES_M);
  RETURN @V_COUNT;
終わり
于 2012-11-28T10:45:06.597 に答える