2013-02-01 124 views
3

我正在尋找從SQL Server將幾千條記錄複製到C#中的Access。另一個方向使用SqlBulkCopy。有什麼地方可以做到這一點嗎?從SQL Server插入訪問

我正盡全力避免在每條記錄中循環遍歷每個字段,並構建一個令人髮指的Insert聲明,這不僅會永遠運行,而且如果有任何變化可能會發生可怕的崩潰。

+0

我應該指定,我使用SqlConnection連接到SQL Server和OleConnection連接到Access - 我在我的代碼中做了很多其他操作。 – The1nk

回答

5

這將運行對MS接入OleConnection連接:

SELECT fld1, fld2 INTO accessTable FROM [sql connection string].sqltable 

例如:

SELECT * INTO newtable 
FROM 
[ODBC;Description=Test;DRIVER=SQL Server;SERVER=server\SQLEXPRESS;UID=uid;Trusted_Connection=Yes;DATABASE=Test].table_1 

或者追加

INSERT INTO newtable 
SELECT * 
FROM [ODBC;Description=Test;DRIVER=SQL Server;SERVER=server\SQLEXPRESS;UID=uid;Trusted_Connection=Yes;DATABASE=Test].table_1; 

或用了FileDSN

INSERT INTO newtable 
SELECT * 
FROM [ODBC;FileDSN=z:\docs\test.dsn].table_1; 

你需要找到一個合適的正確的驅動程序,例如

ODBC;Driver={SQL Server Native Client 11.0};Server=myServerAddress;Database=myDataBase; Uid=myUsername;Pwd=myPassword; 

http://connectionstrings.com對我的作品,但檢查出你的客戶端版本。

+0

看起來像這是正確的軌道,但我需要一些額外的幫助提供密碼,而不是一個可信的連接:'SELECT * FROM [ODBC; Description = Test; DRIVER = SQL Server; SERVER = IpAddress; UID = Username; PASSWORD = Pass; DATABASE = DB] .dbo.Orders' - 我輸入的憑據是否錯誤?他們似乎並沒有像這樣工作。非常感謝你! – The1nk

+1

您將需要找到適合的驅動程序,例如'ODBC; Driver = {SQL Server Native Client 11.0}; Server = myServerAddress; Database = myDataBase; Uid = myUsername; Pwd = myPassword;'來自http://connectionstrings.com適用於我,請查看您的客戶端版本。 – Fionnuala

+0

您也可以使用DSN或FileDSN。 – Fionnuala