首页 > 解决方案 > 存储过程执行在 SSIS Vs 中给出不同的结果。SSMS

问题描述

我执行一个存储过程,它接受 7 个参数并返回一个整数代码。当我运行 exec 语句时,它运行良好并给出了有效的结果。但是当我使用 SSIS 运行相同的程序时,我得到的结果与我的预期完全相反。

我在 Profiler 上运行了跟踪,并看到了正在传递的内容。这些值具有正确的顺序和正确的值。我不确定 SSIS 执行部分发生了什么。

我也验证了数据类型,它们对我来说看起来不错。我在分析器上注意到的一件事是,即使是整数值列也被作为 varchars 传递,并带有单引号。这有什么区别吗?下面是我从 Profiler 得到的

exec sp_executesql N'EXEC [dbo].[ProcName] @P1,@P2,@P3,@P4,@P5,@P6,@P7',N'@P1 varchar(6),@P2 nvarchar(9),@P3 datetime2(0),@P4 varchar(1),@P5 varchar(1),@P6 varchar(4),@P7 nvarchar(5)','743290',N'000000034','2018-07-25 00:00:00','2','2','1002',N'Swift'

谢谢,房车

标签: stored-proceduresssisssmssql-server-profiler

解决方案


好的。所以这是我的一个错误。在 SSMS 上运行的查询在集群的主实例上运行,因为 SSIS 包指向集群的只读实例。

我的印象是这两个服务器上的数据是相同的,但那是我的错误。我开始将 SSMS 版本指向只读实例,它给出了与我预期完全相同的结果。因此关闭它。


推荐阅读