2014-04-15 47 views
1

我有表1包含4列如何根據條件將記錄複製到另一個表中?

AssociateId, chk1, chk2, chk3 

和另一表(表2)含有相同的4列。

chk1, chk2, chk3 
  1. 列將有值 '是/否/ null的'
  2. 如果table1中包含3條和2條記錄包含所有CHK1,CHK2,chk3列中的值 '是',那麼這兩個記錄已經被插入到表2
  3. 此外,這些2個記錄應該從表1

怎麼可能使用SQL Server 2008刪除?

回答

0

如果我有unterstand你的問題吧,我認爲這可能爲你工作:

於表1可以運行該SQL語句插入:

插入到表2 CHK1,CHK2,chk3 值(從表1中選擇CHK1,CHK2,chk3其中CHK1 = '是' 和Chk2 = '是' 和chk3 = '是')

和刪除記錄在表1

從表1,其中CHK1刪除='是'和chk2 ='是'和chk3 = 「是」

+0

user2514925已經提到,如果2'記錄'對於所有3列具有相同的值,而不是1記錄的2'列'在表1中具有相同的值。 – RRM

+0

如果未包含在事務中,這將在生產中是危險的。如果他的第一個查詢失敗,第二個查詢運行?噗,沒有記錄。 –

+0

謝謝你的迴應。我曾嘗試過相同的查詢,但我希望從table1和table2插入和刪除同時自動完成時,我插入或更新table1列值 – user2514925

0

您可以使用一個事務。首先插入你的記錄在表2一樣

Insert into table2 (column1,column2,column3) 
select column1, column2,column3 from table1 
where column1 ='YES' and column2 ='YES' and column3 ='YES'; 

那麼你可以基於相同的條件下& table1的刪除記錄提交事務。

+0

@RRMadhav記錄表示行。我已經檢查了我的代碼 –

+0

中的3列,請檢查我的編輯答案,我的意思。 – RRM

0

我想第二個條件翻譯如下圖所示:

如果表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查詢中是不可能的。

否則,創建一個存儲過程,並將插入和刪除查詢都放入事務中。

相關問題