c# SqlBulkCopy - 如何获取原始的SQL查询

3
我将使用c#和SqlBulkCopy一次性将一些记录插入到我的数据库中。 记录列表很小,最多只有100-200条。
以下是我的代码:
 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
            {
                bulkCopy.DestinationTableName = destinationTableName;

                bulkCopy.WriteToServer(reader);
            }

我偶尔会遇到超时异常,我想获取原始的SQL查询语句以便进一步调查。 有人能告诉我如何从SqlBulkCopy对象中提取它吗?


最后关闭读取器。 - Jay
1个回答

3
尝试设置BulkCopyTimeout属性。我认为默认情况下会使用连接超时。
我认为你无法从BulkCopy中获取SQL,因为我认为它不是执行常规的INSERT语句。你可以尝试运行SQL Profiler。
如果你想生成用于插入现有数据的INSERT语句(这样你就可以在不同的数据库上运行它),你可以使用Red Gate的SQL Data Compare。我想他们有一个免费版本可用。

很有趣的是,看看你是否真的可以从SQL分析器中获得任何东西。文档并没有真正说明它在底层做了什么。 - Liam
这篇文章似乎暗示您在分析器中什么也看不到,但并没有明确说明。 - Liam
1
这是我在 SQL Profiler 中看到的内容: 插入批量目标表名([colAName] BigInt, [colBName] NVarChar(250) COLLATE SQL_Latin1_General_CP1_CI_AS)。 - Gidi
@Gidi - 是的,这就是您在 Profiler 中将获得的内容。 - Jakub Konecki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接