Sql server 是否可以将多个输出子句组合到同一个sql语句中?

Sql server 是否可以将多个输出子句组合到同一个sql语句中?,sql-server,Sql Server,我希望在SQL Server中的单个命令中执行以下操作: 删除记录 将删除的记录插入另一个表 将已删除记录的ID插入另一个表以进行进一步处理,从而消除相关表 我可以做1和2, 像 我想做的是如下所示 DECLARE @tempTable TABLE ( ID int ) DELETE p OUTPUT deleted.* INTO Table2 OUTPUT INSERTED.ID INTO @tempTable FROM Table1 p 是否可以在单个命令中执行此操作?否在单个语句

我希望在SQL Server中的单个命令中执行以下操作:

  • 删除记录
  • 将删除的记录插入另一个表
  • 将已删除记录的ID插入另一个表以进行进一步处理,从而消除相关表
  • 我可以做1和2, 像

    我想做的是如下所示

    DECLARE @tempTable TABLE
    (
       ID int
    )
    DELETE p
    OUTPUT deleted.*
    INTO Table2
    OUTPUT INSERTED.ID
    INTO @tempTable
    FROM Table1 p
    

    是否可以在单个命令中执行此操作?

    否在单个语句中不能有多个output子句。就像不能有多个where子句一样。您希望从delete语句中插入的表中找到什么?也许你真正想要的是一个合并?只是@SeanLange评论的一个补充-查看
    MERGE
    OUTPUT
    的组合。
    DECLARE @tempTable TABLE
    (
       ID int
    )
    DELETE p
    OUTPUT deleted.*
    INTO Table2
    OUTPUT INSERTED.ID
    INTO @tempTable
    FROM Table1 p