可以說我有一個表格,其中包含以下數據。如何插入新行並從給定值集合中刪除缺少的行?
Id Value
1 | A
2 | B
3 | C
我需要將此表中的值與值的集合進行同步。我想刪除不在我的集合中的任何行,添加行並保留單獨的匹配行。
給定的值的這個集合:
C,D,E
我期望表包含手術後:
Id Value
3 | C
4 | D
5 | E
我所知道的最需要多個查詢顯而易見的解決方案。我正在尋找的是可能的更高效的解決方案。我可以在這裏使用MERGE語句嗎?
編輯 - 收集值在C#的集合(list <string>),我使用的標準SqlConnection/SqlCommand的.NET中執行查詢。
這裏是我考慮去掉值的東西。但是這可能會被忽視,因爲我不得不做一些字符串連接來創建它。
DELETE FROM [MyTable]
WHERE [Value] NOT IN ('C','D','E')
但隨後添加它似乎像值我會創建多個IF NOT EXISTS然後插入我的收藏中的每個值的查詢語句。
這是什麼樣的收集?這個集合如何獲得SQL?這是一個程序中的集合嗎(比如說,一個.NET應用程序中的Dictionary)或者什麼? – cost
所以......你問是否合併2個表(你需要創建其中的一個)比檢查值是否在當前表中然後插入這些值更好? – BLaZuRE
好問題。假設我在列表中包含這些值。對於這個應用程序,我使用了一個原始的SqlConnection/SqlCommand。這有幫助嗎? –
Vyrotek