將刪除的行從一個表移動到另一個表(具有觸發器)我有2個表,稱爲Active_QC1(id, req_name, req_type)
和Deleted_QC1(id, req_name, req_type)
,如果萬一我將從Active_QC1
表中刪除數據應該移動到Deleted_QC1
。這兩張桌子都有觸發器,請問有誰能指導我?使用ms sql
Q
使用ms sql
1
A
回答
0
我建議你在Active_QC1表中添加一列,其名稱爲Status_Flag
其varchar
類型,並設置狀態標誌'Y'或'N'爲相應的刪除與否。那麼你可以嘗試以下查詢
查詢#1:
ALTER TABLE Active_QC1
ADD Status_Flag VARCHAR2(3 BYTE)
查詢#2:
UPDATE Active_QC1
SET Status_Flag = 'Y'
WHERE id = <deleted records id>
查詢#3:
INSERT INTO Deleted_QC1 (id, req_name, req_type)
SELECT id, req_name, req_type
FROM Active_QC1
WHERE Status_Flag = 'Y';
查詢4。
DELETE FROM Active_QC1
WHERE Status_Flag = 'N';
0
您可以在DELETE語句中使用OUTPUT clause(microsoft.com)。一個簡單的DELETE語句的基本輪廓是什麼如下:
DELETE FROM Active_QC1
OUTPUT DELETED.* INTO Deleted_QC1
WHERE id=5;
它所做的是刪除所有行Active_QC1
與id=5
,然後插入這些行到Deleted_QC1
。
一個例子:
CREATE TABLE #Active_QC1(id INT, req_name VARCHAR(128), req_type INT);
CREATE TABLE #Deleted_QC1(id INT, req_name VARCHAR(128), req_type INT);
INSERT INTO #Active_QC1(id,req_name,req_type)
VALUES
(1,'engage',3),
(2,'forward',5),
(3,'obliterate',3),
(4,'reply',5),
(5,'delete',5);
DELETE FROM
#Active_QC1
OUTPUT
DELETED.id,
DELETED.req_name,
DELETED.req_type
INTO
#Deleted_QC1(id,req_name,req_type)
WHERE
req_type=5;
SELECT*FROM #Deleted_QC1;
DROP TABLE #Deleted_QC1;
DROP TABLE #Active_QC1;
此腳本使得兩個臨時表#Active_QC1
和#Deleted_QC1
具有相同表定義。一些行被添加到#Active_QC1
。 DELETE
語句用req_type=5
刪除#Active_QC1
中的所有行,並將它們插入#Deleted_QC1
。該腳本最終選擇#Deleted_QC1
中的所有行。結果如下:
╔════════╦══════════╦══════════╗
║ id ║ req_name ║ req_type ║
╠════════╬══════════╬══════════╣
║ 2 ║ forward ║ 5 ║
║ 4 ║ reply ║ 5 ║
║ 5 ║ delete ║ 5 ║
╚════════╩══════════╩══════════╝
相關問題
- 1. strcomp不能使用ms sql
- 2. 使用PHP訪問MS SQL
- 3. 在MS SQL中使用RSS
- 4. 使用C#和MS Access創建表SQL
- 5. 使用MS Access的SQL高級IIF
- 6. 在MS SQL Server中使用truecrypt
- 7. 使用MS SQL修改XML列
- 8. 使用關係表篩選表MS-SQL
- 9. MS SQL SP - 使用EXEC記錄集
- 10. 使用小巧玲瓏從MS SQL
- 11. 使用MS SQL 2012運行的Rails tinyTDS
- 12. ms-access:使用vba/sql重複進程
- 13. 使用Hibernate和MS SQL與IntelliJ IDEA的
- 14. 如何使用jdbc連接ms sql-server?
- 15. 多行插入MS Sql Server使用C#
- 16. 使用RODBC的MS-SQL批量插入
- 17. 使用MS接入代碼由SQL Identifing
- 18. MS SQL 2008 cpu使用情況
- 19. PHP可以使用MS SQL數據庫
- 20. 使用MS SQL命令NEWID()和UNION
- 21. 在Coldpool上使用MS SQL Server與Coldfusion
- 22. 使用MS SQL與Symfony的3
- 23. Sql使用MS Access加入查詢
- 24. 使用OBDC將.sql導入到MS Access
- 25. 使用MS SQL Server設置MediaWiki
- 26. 使用VB 2010與MS SQL Server 2008
- 27. 使用jQuery連接到MS SQL 2012?
- 28. 使用MS Access 2007分發器複製到MS SQL Server 2008
- 29. 如何在MS SQL中使用相同的數據寫兩個MS SQL代碼
- 30. 使用java和poi寫入ms ms sql server 2005使用java和poi