2

何らかの理由で、「単語「DECLARE」の近くの構文が正しくありません」というエラーが表示され続けます。エラーがスローされないようにするには、変数をどこで宣言する必要がありますか? 「WITH AS」ステートメントを使用して変数を宣言しようとしている人を見つけられなかったため、これを理解できませんでした。

CREATE PROCEDURE qryKeysValues(@KeyValue varchar(5))
    AS
    BEGIN
    WITH tbl1 AS    
        (SELECT * FROM FN_qryMethods())

    DECLARE @SQL varchar(1500)
    SET @SQL = 'SELECT ' + @KeyValue+ ' AS fldCode, tbl' +@KeyValue+ 'Key.fldID, tbl1.fldID
               FROM tbl' + @KeyValue + 'Key', tbl1
        EXEC(@SQL)
    END;
4

2 に答える 2

4

たぶん、このようなものがあなたが探しているものですか?

CREATE PROCEDURE qryKeysValues(@KeyValue varchar(5))
AS
BEGIN

  DECLARE @SQL varchar(1500);

  SELECT * INTO #tbl1 FROM FN_qryMethods();

  SET @SQL = 'SELECT ' + @KeyValue+ ' AS fldCode
                 , tbl' +@KeyValue+ 'Key.fldID
                 , #tbl1.fldID
              FROM tbl' + @KeyValue + 'Key, #tbl1';

  EXEC(@SQL);
END;
于 2013-07-22T14:40:11.073 に答える