Akh*_*hil 3 sql t-sql sql-server-2008
我正在归档我的表数据以归档表。为此,我只是根据某些条件将记录插入到存档表中,并在下一条语句中删除主表中具有相同条件的记录。
但是为了提高性能,建议使用带有输出子句的单个语句。
代码 :
INSERT INTO AR_tbl1
SELECT GETDATE(), D.*
FROM
(DELETE FROM tbl1
WHERE Amt >= 40
OUTPUT DELETED.*) D
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。如果我评论 where 子句,它会起作用。请帮我用where子句修复逻辑
虽然这个问题有一个公认的答案,但我认为下面的查询比使用derived table.
DELETE FROM tbl1
OUTPUT GETDATE(), DELETED.*
INTO AR_tbl1
WHERE Amt >= 40
Run Code Online (Sandbox Code Playgroud)
我完成了。谢谢马丁。问题出在顺序上。输出子句需要添加在 where 子句之前。
新代码:
INSERT INTO AR_tbl1
SELECT D.*
FROM
(DELETE FROM tbl1
OUTPUT DELETED.*
WHERE Amt >= 40) D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5737 次 |
| 最近记录: |