SqlBulkCopy可以從Sql選擇中創建一個表

sqlbulkcopy

SqlBulkCopy可以創建一個表,有點像SELECT INTO嗎?

一般承認的答案

看來SqlBulkCopy本身無法創建表。必須預定義目標表。在目標具有自動增量標識(int)的情況下,只需在select語句中使用1即ie

SELECT 
    1, 
    [ColumnName],
    [ColumnName]...
FROM TABLENAME

SQL Server將自行處理自動增量。


熱門答案

我認為上面的回答並不十分清楚。

您必須使用SQL創建表。沒有其他辦法。如果您只需要創建列結構,那麼如果您的源位於同一服務器中則非常簡單,只需執行此操作即可:

Select * from source_table into destination_table where 1=2

如果您的源不在同一服務器中(例如,它是excel或dbf文件或其他),最簡單的方法是使用ODBC(或SQL,如果可能)連接它,並發送給他:

    Select * from source_table where 1=2

然後將結果收集到DataTable中。然後在第二步中,您應該在目標服務器上創建存儲過程,該存儲過程將該表作為參數,然後將其插入新表中。

更確切地說,嘗試使用SQL過程: http//www.builderau.com.au/program/sqlserver/soa/Passing-table-valued-parameters-in-SQL-Server-2008/0,339028455,339282577 ,00.htm

並在c#中創建SqlCommnand對象並添加到其Parameters集合SqlParameter,即SqlDbType.Structured

我沒有詳細介紹每一個細節,但希望它可以提供幫助。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因