6

SqlBulkCopy 可以创建一个类似于 SELECT INTO 的表吗?

4

2 回答 2

0

似乎 SqlBulkCopy 无法自行创建表。必须预定义目标表。在目的地有一个自动增量标识(int)的情况下,只需在选择语句中使用 1 即

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

SQL Server 将自行处理自动增量。

于 2010-10-25T08:51:37.283 回答
0

我认为上面的答案不是很清楚。

您必须使用 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 对象并将其添加到其参数集合 SqlParameter 中,即 SqlDbType.Structured

我没有详细介绍每个细节,但希望它可以提供帮助。

于 2011-01-14T18:00:22.803 回答