【问题标题】:Delete Join Statement删除加入语句
【发布时间】:2012-02-01 14:05:17
【问题描述】:

我试图在我的存储过程中使用 Delete 语句,但它给了我一个错误提示,

对象名称“BRWSQLDC”无效。

以下是我的删除声明:

set @Query = 'DELETE FROM ' + @DestLinkServer + ' FROM .HL2_61.dbo.ArtPDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID ' + ' WHERE ArticleKey = ' + CONVERT(VARCHAR, @Id)

当我如下执行时

DELETE FROM BRWSQLDC FROM .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID  WHERE ArticleKey = -1591276581

错误是:无效的对象名称“BRWSQLDC”。

如果我尝试执行如下代码:

'DELETE FROM ' + @DestLinkServer + ' .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID ' + ' WHERE ArticleKey = ' + CONVERT(VARCHAR, @Id)

传递值时,

DELETE FROM BRWSQLDC .HL2_61.dbo.ArticlePDF AP JOIN .HL2_61.dbo.Article A on A.ArticleID = AP.ArticleID  WHERE ArticleKey = -1591276581

我得到的错误是:

“AP”附近的语法不正确。

请帮助我如何在删除中加入 2 个表,然后在服务器中删除它(如果存在)。

【问题讨论】:

    标签: sql sql-server sql-delete


    【解决方案1】:

    您不需要连接,只需要一个适当的 WHERE 子句。

    【讨论】:

      【解决方案2】:

      在删除后将别名移至,但您还应该识别ArticleKey 来自的表

      DELETE AP
      FROM BRWSQLDC.HL2_61.dbo.ArticlePDF AP 
      JOIN BRWSQLDC.HL2_61.dbo.Article A   -- preface this with your server name for clarity
          ON A.ArticleID = AP.ArticleID  
      WHERE A.ArticleKey = -1591276581 
      

      【讨论】:

        【解决方案3】:

        当你使用 join 时,你必须告诉你要从哪个表中删除行:

        DELETE dbo.Customer
        FROM dbo.Customer cust INNER JOIN dbo.Person pers ON pers.ID_CUST = cust.ID_CUST
        

        【讨论】:

          猜你喜欢
          • 2022-06-11
          • 1970-01-01
          • 2020-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-20
          • 2023-03-16
          相关资源
          最近更新 更多