我有表1包含4列如何根據條件將記錄複製到另一個表中?
AssociateId, chk1, chk2, chk3
和另一表(表2)含有相同的4列。
chk1, chk2, chk3
- 列將有值 '是/否/ null的'
- 如果table1中包含3條和2條記錄包含所有CHK1,CHK2,chk3列中的值 '是',那麼這兩個記錄已經被插入到表2
- 此外,這些2個記錄應該從表1
怎麼可能使用SQL Server 2008刪除?
我有表1包含4列如何根據條件將記錄複製到另一個表中?
AssociateId, chk1, chk2, chk3
和另一表(表2)含有相同的4列。
chk1, chk2, chk3
怎麼可能使用SQL Server 2008刪除?
如果我有unterstand你的問題吧,我認爲這可能爲你工作:
於表1可以運行該SQL語句插入:
插入到表2 CHK1,CHK2,chk3 值(從表1中選擇CHK1,CHK2,chk3其中CHK1 = '是' 和Chk2 = '是' 和chk3 = '是')
和刪除記錄在表1
從表1,其中CHK1刪除='是'和chk2 ='是'和chk3 = 「是」
您可以使用一個事務。首先插入你的記錄在表2一樣
Insert into table2 (column1,column2,column3)
select column1, column2,column3 from table1
where column1 ='YES' and column2 ='YES' and column3 ='YES';
那麼你可以基於相同的條件下& table1的刪除記錄提交事務。
@RRMadhav記錄表示行。我已經檢查了我的代碼 –
中的3列,請檢查我的編輯答案,我的意思。 – RRM
我想第二個條件翻譯如下圖所示:
如果表1中包含類似以下記錄,
+-------------+------+------+------+
| AssociateId | chk1 | chk2 | chk2 |
+-------------+------+------+------+
| 01 | yes | yes | yes |
| 02 | yes | yes | yes |
| 03 | no | no | yes |
+-------------+------+------+------+
才,用AssociateId = 01的記錄,02應該被複制到表2
您可以使用普通SQL在table2中實現條件INSERT,但在table1上的其他DELETE操作在同一SQL查詢中是不可能的。
否則,創建一個存儲過程,並將插入和刪除查詢都放入事務中。
user2514925已經提到,如果2'記錄'對於所有3列具有相同的值,而不是1記錄的2'列'在表1中具有相同的值。 – RRM
如果未包含在事務中,這將在生產中是危險的。如果他的第一個查詢失敗,第二個查詢運行?噗,沒有記錄。 –
謝謝你的迴應。我曾嘗試過相同的查詢,但我希望從table1和table2插入和刪除同時自動完成時,我插入或更新table1列值 – user2514925