我正在使用 SQL Server 2008 和 BIDS (SSIS)。我试图在执行包时生成一个“加载 ID”,并将该 ID 存储在加载历史表中(然后填充后续表)。
我的基本 SSIS 控制流程如下:
执行SQL任务、数据流任务
负载表是通过以下方式创建的:
CREATE TABLE dbo.LoadHistory
(
LoadHistoryId int identity(1,1) NOT NULL PRIMARY KEY,
LoadDate datetime NOT NULL
);
执行SQL任务的编辑器如下:
General:
结果集 = 无
连接类型 = OLE DB
SQL语句:
INSERT INTO dbo.LoadHistory (LoadDate) VALUES(@[System::StartTime]);
SELECT ? = SCOPE_IDENTITY()
参数映射:
变量名称 = 用户::LoadID
方向=输出
数据类型 = LONG
参数名称 = 0
参数大小 = -1
SSIS 抛出以下错误:
[执行 SQL 任务] 错误:执行查询“INSERT INTO dbo.LoadHistory
...”失败并出现以下错误:“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果有)。未完成任何工作。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。
这个错误信息并不能真正帮助我找到问题所在。我最好的猜测是这是由于参数映射造成的,但我没有看到我的错误。有人可以指出我的问题并提供解决方案吗?
我找到了我的问题。 System::StartTime 需要将 DATE 作为其数据类型,而不是 DBTIMESTAMP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)