无法使用联接计算删除查询

时间:2012-12-02 13:15:47

标签: sql sql-server sql-server-2008 join

    `IF(@ParentField = 'Reason for call - Primary Issue')
    BEGIN
        DELETE FROM dbo.ControlBrandMapping CBM
            INNER JOIN dbo.ControlManagement CM ON CM.ID = CBM.CONTROLID
                WHERE CM.DefaultName = 'Reason for call - Sub Issue' AND CBM.BRANDID = @BrandId
    END`

我尽力让它看起来尽可能整洁。 我收到此错误 - “'CBM'附近的语法不正确。” 请帮忙

2 个答案:

答案 0 :(得分:2)

您在CBM子句后缺少别名DELETE。试试这个:

    DELETE CBM
    FROM dbo.ControlBrandMapping CBM
    INNER JOIN dbo.ControlManagement CM ON CM.ID = CBM.CONTROLID
    WHERE CM.DefaultName = 'Reason for call - Sub Issue' 
      AND @ParentField = 'Reason for call - Primary Issue'
      AND CBM.BRANDID = @BrandId

答案 1 :(得分:0)

我对此并不确定,我刚刚开始,但据我所知,在做加入时,我认为它应该是INNER JOIN dbo.ControlManagement CM ON (CM.ID = CBM.CONTROLID) 注意括号,但我可能错了