首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试SSIS OleDbCommand

调试SSIS OleDbCommand
EN

Database Administration用户
提问于 2012-11-08 20:13:19
回答 1查看 1.3K关注 0票数 2

我在数据流中有一个执行更新的OleDb命令组件(是的,我知道它对性能的影响)。

运行包在出价告诉我,组件是到达和运行正确的,绿色的时候完成,等等。然而,我没有看到更新在数据库中。

我正在记录组件上的所有事件,但似乎没有一种方法可以将实际的命令文本发送到服务器。我可以看到ICommandText::SetCommandText,ICommandPrepare::准备和ICommandWithParameters::GetParameterInfo事件已完成,但数据库中没有任何更改。我还能看什么来找出这两个系统之间到底发生了什么呢?

EN

回答 1

Database Administration用户

发布于 2012-11-08 21:14:29

您可以使用检查发生了什么。当您执行OLE任务时,您应该会看到类似于RPC:Completed事件的内容:

代码语言:javascript
复制
declare @p1 int
set @p1=1
exec sp_prepare @p1 output,N'@P1 int',N'update testtable set id = @P1',1
select @p1

在本例中,我只是在更新一个测试表(称为testtable)。

然后,对于每次迭代,您将看到一个RPC:Completed事件,其内容如下:

代码语言:javascript
复制
exec sp_execute 1,50

这意味着要执行第一个准备好的事件(我们的update语句--sp_prepare的第一个参数在这里是"1“),并将50作为testtable的新ID发送。

如果您在调试流程时没有在数据库中看到这些调用,那么它可能表明您实际上是在一个不同的实例上执行这个过程(或者可能有某种类似的触发器阻止您的更改发生?)

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/28402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档