“DECLARE”一词附近的语法不正确

cod*_*iac 2 sql sql-server-2008

由于某种原因,我不断收到错误“‘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;
Run Code Online (Sandbox Code Playgroud)

gre*_*kes 5

With语句采用以下结构:

WITH CTE_Name
AS
(
    Select column from table
)
Select column from CTE_Name
Run Code Online (Sandbox Code Playgroud)

你不能把Declare它放在你该放的地方。允许的值为SELECTINSERTUPDATE和(contrib @alex k)。DELETEMERGE