1

我正在使用以下代码将数据插入 MS SQL 2008 服务器:

//filter the data have only the latest values
DataTable table = GetFilteredTable(id, maxTime);

//upload these values
using (SqlBulkCopy blk = new SqlBulkCopy(con))
{
 blk.BulkCopyTimeout = 600;
 blk.DestinationTableName = tableName;
 blk.WriteToServer(table);
}

这些表是由企业中间件在 SQL Server 中制作的,因此在架构名称中有一个句点。完整的表名称类似于[j.doe].[FOOBAR]j.doe 是模式名称而 FOOBAR 是实际表名称。

当我运行上面的代码时,它失败并出现异常,这意味着'无法获取目标表中列的排序信息。(我没有附上确切的错误消息,因为服务器有法语语言环境,而且法语也是例外。)

在我的代码中,变量的tableName值为[j.doe].[FOOBAR]

只是为了确保错误出现在表名中,我在另一个模式中创建了同一个表,即[dbo].[FOOBAR],当插入到这个表时,相同的代码运行没有任何问题。

我宁愿使用正确的编程方式将行插入此表。所以请建议我应该如何更改我的代码,而不是在服务器上的数据库中更改或添加新表。

架构名称有句点时如何使用 SqlBulkCopy?

4

0 回答 0