繁体   English   中英

通过SSIS执行SQL Server存储过程

[英]Execute SQL Server stored procedure through SSIS

我有这个存储过程:

CREATE PROCEDURE [dbo].[sp_Carrier_Scan_Compliance]
     (@RETAILERID  INT OUTPUT,
      @SYSTEM_ID  VARCHAR(10) OUTPUT)
AS
BEGIN
    SET @RETAILERID = 2
    SET @SYSTEM_ID = 'DMASOS'
    ...
END

我已经在控制流中使用Execute SQL Task创建了一个SSIS包。

这些是我的“ 执行SQL任务”编辑器设置:

在此处输入图片说明

这是我的变量设置:

在此处输入图片说明

这些是我的参数映射设置:

在此处输入图片说明

运行SSIS程序包时,出现错误:

错误:执行SQL存储过程中的0xC002F210(要复制“ BI-Datatrunk”源表中的数据)任务,执行SQL任务:执行查询“ exec = [sp_Carrier_Scan_Compliance]?OUTPUT ,? O ...”失败,并出现以下错误:“'='附近的语法不正确。”。 可能的失败原因:查询问题,“ ResultSet”属性未正确设置,参数未正确设置或连接未正确建立。

任务失败:执行SQL存储过程(从“ BI-Datatrunk”源表复制数据)
警告:在Carrier_Scan_Compliance_SP处为0x80019002:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。 执行方法成功,但是引发的错误数(1)达到允许的最大值(1); 导致失败。 错误数量达到MaximumErrorCount中指定的数量时,会发生这种情况。 更改MaximumErrorCount或修复错误。

我不确定我缺少什么。

请帮我。

谢谢

最后一个错误的关键部分是

对对象'sp_Carrier_Scan_Compliance',数据库'DATAK',模式'dbo'的EXECUTE权限被拒绝。”

您需要为执行Proc的SQL用户分配EXECUTE权限

USE DATAK
GO
GRANT EXECUTE ON sp_Carrier_Scan_Compliance TO <sql user>
GO 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM