2012-09-18 76 views
1

有沒有人知道或有一個從1表到另一個獲取數據的例子?ADO.NET:從一個表中獲取數據到另一個?

它使用SQL SERVER EXPRESS,2個表幾乎相同,1個被用作客戶端的臨時表..所以我的後端客戶端需要將項目從臨時表移動到其他表。

我是否需要使用只向前遊標和for循環?

我認爲我打開一個連接,使用命令對象來查詢數據庫,將回到DataSet

我遍歷for循環和使用的ADO.NET

COMMAND對象調用插入記錄是不是有這樣做的更好的辦法?

+1

看看這個帖子中插入數據:http://stackoverflow.com/q/3598699/1668398 –

+0

which db ????????? – nawfal

+0

quesiton更新與數據庫類型等 – Martin

回答

1

您可以在SQL只有這樣做,是這樣的:

SELECT * 
INTO theNewTable 
FROM FirstTable dept 
WHERE 1 = 1; 

放入strored過程或直接執行它的命令。

請注意:INTO將創建一個與第一個表具有相同結構的新表,並將第一個表中的所有行復制到該表中。如果你只想創建表而不填充行並將它們複製到新創建的表中,那麼我們就會出現一個總是謬誤的表達式。例如「1 = 0」。

1

您可以使用DataTable.Copy

http://msdn.microsoft.com/fr-fr/library/system.data.datatable.copy.aspx

您還可以使用DataTable.ImportRow

鏈接:http://msdn.microsoft.com/fr-fr/library/system.data.datatable.importrow.aspx

TSQL:您還可以使用:在存儲過程INSERT SELECT查詢。

+0

不錯,但我的表是不完全一樣的,目的地將有更多的領域,我必須更新manaully。 – Martin

+0

@Martin當你使用DataTable.Copy時,你複製到本地表中,例如:var table = yourDataTable.Copy();所以你cpy的結構和數據。您也可以嘗試使用克隆和導入行。你也可以執行存儲過程,並調整你的查詢 –

2

如果兩個表的列是相同的:

INSERT INTO TABLE_1 
SELECT * FROM TABLE_2 

如果不是所有的列都是一樣的,你可以做這樣的:

INSERT INTO TABLE_1 (common_column1, common_column2, common_column3) 
SELECT common_column1, common_column2, common_column3 FROM TABLE_2 

之後,你可以更新不相等的列。 也可以插入在列硬編碼的值不相等:

INSERT INTO TABLE_1 (common_column1, common_column2, common_column3, diff_column_1, diff_column_2) 
SELECT common_column1, common_column2, common_column3, '1', '2' FROM TABLE_2 
+0

不,他們不完全一樣,有些是但目的地表有更多的領域,我將需要更新 – Martin

+0

我編輯了我的答案。 – gabsferreira

0

您可以使用此

INSERT INTO TABLE (columnname1, columnname2, columnname3,.....) 
SELECT columnname1, columnname2, columnname3 FROM TBL 
相關問題