我突然遇到了使用LINQ to SQL將SQL Server數據庫中的某些記錄從一個表移動到另一個表時出現問題的問題。是否有可能在LINQ to SQL中寫入一個如此簡單的查詢:使用LINQ to SQL將記錄移動到另一個表
INSERT INTO Table2 SELECT * FROM Table1 WHERE Selected = 1
GO
DELETE FROM Table1 WHERE Selected = 1
GO
不使用循環和集合?
我突然遇到了使用LINQ to SQL將SQL Server數據庫中的某些記錄從一個表移動到另一個表時出現問題的問題。是否有可能在LINQ to SQL中寫入一個如此簡單的查詢:使用LINQ to SQL將記錄移動到另一個表
INSERT INTO Table2 SELECT * FROM Table1 WHERE Selected = 1
GO
DELETE FROM Table1 WHERE Selected = 1
GO
不使用循環和集合?
這裏絕對不需要LINQ。考慮性能&發佈兩個SQL語句(或調用sproc)的可維護性影響,而不必加載潛在的數千個對象,然後再次保存它們。
度假至SqlCommand
s。那將是你最好的選擇。
這只是一個簡單的插入和刪除方法,應該寫在一起。
到第二個表,當其完成一個插入必要的字段,第二條語句將從第一表
刪除字段我不知道的方式,在LINQ2SQL移動行沒有環。 :)
這種事情在SQL中更容易。您可以使用output into
子句在單個語句中移動行:
delete from Table1
output deleted.id, deleted.name into Table2
where Selected = 1
說實話,這應該是一個存儲過程。爲此使用LINQ將是矯枉過正的。 – Codesleuth 2010-02-24 09:33:26
我有同樣的問題,並解決了我的問題
[看到這個答案。這對我有用](https://stackoverflow.com/questions/48712294/move-record-from-a-table-to-another-using-foreach-in-c-sharp) – Damon 2018-02-09 19:45:06