这是我的脚本,我在其中抓取 SCOPE_IDENTITY() 并分配给 SSIS 包变量。
--START: SCRIPT TO CHECK IF THERE IS ENTRY FOR 'UNKOWNN' IN AUDIT DIMESNION - IF NOT INSERT
IF NOT EXISTS (SELECT AUDIT_SK FROM SHARED.AUDIT_DIM WHERE AUDIT_SK = -1)
BEGIN
SET IDENTITY_INSERT SHARED.AUDIT_DIM ON
INSERT INTO [SHARED].[AUDIT_DIM]
(AUDIT_SK
,[JOB_ID]
,[OUTPUT_STREAM_ID]
,[OUTPUT_STREAM_DESC]
,[SELECTION_START_DATE]
,[SELECTION_END_DATE]
,[JOB_RUN_DATE])
VALUES
(-1
,-1
,-1
,'UNKNOWN'
,'1000-01-01'
,'1000-01-01'
,'1000-01-01')
SET IDENTITY_INSERT SHARED.AUDIT_DIM OFF
END
--- END 'UNKOWNN' IN AUDIT DIMESNION
INSERT INTO [SHARED].[AUDIT_DIM]
(
[JOB_ID],
[OUTPUT_STREAM_ID],
[OUTPUT_STREAM_DESC],
[SELECTION_START_DATE],
[SELECTION_END_DATE],
[JOB_RUN_DATE]
)
VALUES (
?, --parameters passed from package variables
?, --parameters passed from package variables
?, --parameters passed from package variables
?, --parameters passed from package variables
?, --parameters passed from package variables
? --parameters passed from package variables
)
SELECT CONVERT(INT,SCOPE_IDENTITY()) -- This is assigned back to Package variable
在过去的几个月里,这一切都运行良好,并且由于以下错误而不断失败。
信息
以用户身份执行:XXXXXXX\xxxxxxx。适用于 64 位的 Microsoft (R) SQL Server 执行包实用程序版本 10.0.2531.0 版权所有 (C) Microsoft Corp 1984-2005。版权所有。开始时间:下午 3:53:54 错误:2012-04-30 15:54:07.15 代码:0xC002F210 来源:生成 AUDIT_SK 执行 SQL 任务描述:执行查询“--START: SCRIPT TO CHECK IF THE IS ENTRY FOR 'U ...”失败并出现以下错误:“将结果提取到类型为 (DBTYPE_I2) 的变量时出错”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:下午 3:53:54 结束时间:下午 3:54:07 经过时间:13.151 秒。包执行失败。步骤失败。
如果我将包复制到不同的环境或在 SSMS 中单独运行脚本,一切正常。
有人可以指导我应该从哪里开始研究吗?
谢谢