繁体   English   中英

消息156,级别15,状态1,过程ShowDirectorateList,第739行关键字'END'附近的语法不正确

[英]Msg 156, Level 15, State 1, Procedure ShowDirectorateList, Line 739 Incorrect syntax near the keyword 'END'

我做了一个程序,我收到了很多错误消息,例如

消息156,级别15,状态1,过程ShowDirectorateList,第739行关键字'END'附近的语法不正确。

有我的代码请帮助我修复它:

    --List ALL
    IF (@iType = 1 AND @iStatus=2)
    BEGIN
        WITH Allboth AS
        (
        SELECT ROW_NUMBER() OVER (ORDER BY [sName],[iDirectorateID]) AS RowNum
            ,[iDirectorateID]
            ,[sName] 
            ,[sAddress1] 
            ,[iPostCode] 
            ,[sLeadContact] 
            ,[iStatus] 
        FROM [dbo].[Directorate] Dir
            ,[dbo].[Contact] Con
            ,[dbo].[Address] Ad
            ,[dbo].[Detail] Det
        WHERE Dir.iContactID = Con.iContactID
        AND Con.iDetailID = Det.iDetailID
        AND Con.iAddressID = Ad.iAddressID
        ) 
        Insert Into @_FisrtTable
    END

我想从数据库中选择数据并放入@_FirstTable

    DECLARE @_FisrtTable Table
(
     [RowNum] int NULL
    ,[iDirectorateID] int NULL
    ,[sName] nvarchar(50) NULL
    ,[sAddress1] nvarchar(50) NULL
    ,[iPostCode] int NULL
    ,[sLeadContact] nvarchar(50) NULL
    ,[iStatus] int NULL
)
DECLARE @_FisrtTable TABLE (
    [RowNum] INT NULL,
    [iDirectorateID] INT NULL,
    [sName] NVARCHAR(50) NULL,
    [sAddress1] NVARCHAR(50) NULL,
    [iPostCode] INT NULL,
    [sLeadContact] NVARCHAR(50) NULL,
    [iStatus] INT NULL
)

IF (@iType = 1 AND @iStatus = 2) BEGIN

    ;WITH Allboth AS ( -- missing ";"
        SELECT
            ROW_NUMBER() OVER (ORDER BY [sName], [iDirectorateID]) AS RowNum,
            [iDirectorateID],
            [sName],
            [sAddress1],
            [iPostCode],
            [sLeadContact],
            [iStatus]
        FROM [dbo].[Directorate] Dir,
             [dbo].[Contact] Con,
             [dbo].[Address] Ad,
             [dbo].[Detail] Det
        WHERE Dir.iContactID = Con.iContactID
            AND Con.iDetailID = Det.iDetailID
            AND Con.iAddressID = Ad.iAddressID
    )
    INSERT INTO @_FisrtTable
    SELECT * FROM Allboth -- missing "SELECT" from CTE

END

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM