我想從表中獲取所有記錄1 &將它們插入到表2中。表1 &表2在不同的數據庫中,表1和表2是相同的結構。如何僅將所有記錄插入表中一次
通常,我將從table1中獲取所有記錄,對於每個記錄(foreach),我將通過使用「INSERT ...」將其插入到table2中。我想知道一種有效的方法,只需要一次將所有記錄插入到表中而無需使用foreach。
我使用C#,.NET 2.0 & WinForm。
謝謝。
我想從表中獲取所有記錄1 &將它們插入到表2中。表1 &表2在不同的數據庫中,表1和表2是相同的結構。如何僅將所有記錄插入表中一次
通常,我將從table1中獲取所有記錄,對於每個記錄(foreach),我將通過使用「INSERT ...」將其插入到table2中。我想知道一種有效的方法,只需要一次將所有記錄插入到表中而無需使用foreach。
我使用C#,.NET 2.0 & WinForm。
謝謝。
在SQL代碼中,你可以做一個SELECT的INSERT
INSERT INTO Table2
(Id, Name, IsActive)
SELECT Id, Name, IsActive
FROM Table2
或者,如果你在代碼中做,然後檢查出SqlBulkCopy CL屁股
sqlConn.Open();
using (var bulkCopy = new SqlBulkCopy(sqlConn))
{
bulkCopy.DestinationTableName = "Table2";
bulkCopy.WriteToServer(dataTable);
}
sqlConn.Close();
如果這兩個數據庫都在同一Microsoft SQL Server上託管,你可以做一個跨數據庫選擇在整個數據複製,而不需要太多的代碼在所有...
insert into database1.dbo.table1
select *
from database2.dbo.table2
權限是有點棘手...
兩個數據庫可以和海誓山盟對話嗎?在這種情況下,忘記了C#,並創建一個查詢,看起來像這樣:
use db2
SET IDENTITY_INSERT Table2 ON
INSERT INTO Table2
SELECT * FROM db1.dbo.Table1
SET IDENTITY_INSERT Table2 OFF
「SQL代碼」 VS「碼」,咦? =)哦,+1, – 2010-04-28 04:52:24
+1兩個解決方案,但你忘記了第一種情況下的身份字段。在插入之前需要切換身份(檢查David Hedlund解決方案)。 – 2010-04-28 05:00:04
好點,但問題中沒有任何內容表明他/她在這些表上有身份列。 – willbt 2010-04-28 05:45:56