sql - 插入到已删除的输出子句中

标签 sql sql-server-2008 tsql

我正在归档我的表数据以归档表。为此,我只是根据某些条件将记录插入到存档表中,并在下一条语句中删除主表中具有相同条件的记录。

但是为了提高性能,建议使用带有输出子句的单个语句。

代码:

INSERT INTO AR_tbl1 
SELECT GETDATE(), D.*
FROM
    (DELETE FROM tbl1 
    WHERE Amt >= 40  
    OUTPUT DELETED.*) D

但这行不通。如果我评论 where 子句,它会起作用。请帮我修复逻辑 where条款

最佳答案

我完成了。谢谢马丁。问题出在顺序上。输出子句需要添加在 where 子句之前。

新代码:

INSERT INTO AR_tbl1 
SELECT D.*
FROM
    (DELETE FROM tbl1 
    OUTPUT DELETED.* 
WHERE Amt >= 40) D

关于sql - 插入到已删除的输出子句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483241/

相关文章:

sql-server - SQL Server 过滤索引

sql-server - TSQL授予所有表读写权限

sql - 使用 T-SQL 过滤分层数据的最佳方法?

SQL查询: Select max value of subselect

mysql - 仅当所有指定条件都为 true 时才连接表的 SQL

sql-server - 转到 SQL SERVER 中类似功能的定义

sql - 如何更改 hierarchyid 中子项和子项的父 ID

sql-server - 使用正则表达式(或类似的)更新字段

mysql - 检查行中相邻列中是否有相同的条目(第 2 部分)

sql - case within 加入 "ON"子句