我已经编写了一些运行正常的 ETL,处理完成没有错误。现在我想使用 SSIS Loggin 功能创建日志。
但是,一旦我设置此日志记录(SQL Server 的 SSIS 日志提供程序;所有事件;所有容器都被检查,日志也被检查)并启动 ETL,MS Visual Studio 2008 应用程序返回错误窗口,其中未指定错误所以我什至不知道可能是什么问题。 ETL 的目标是 SQL Server 2008 R2。凭据与我的 AD 帐户相同,我可以将数据写入此数据库(分别是表)。
综上所述,整个 ETL 运行没有问题,但是一旦打开 SSIS 日志记录,ETL 甚至无法启动。
注意一点:日志表是通过 [domain\user_name].[sysssislog] 在数据库中创建的。还记录到例如文本文件工作没有任何问题。
请问有什么建议吗?
+++
我收到错误
标题:包验证错误
包验证错误
其他信息:
Reporting_v3 [日志提供程序“SQL Server 的 SSIS 日志提供程序”] 出现错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80040E14 描述:“数据库中已存在一个名为“sysssislog”的对象。”。
Reporting_v3 [日志提供程序“SQL Server 的 SSIS 日志提供程序”] 出现错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。
大约有 500 行存在相同的错误。如果我删除 ssislog 表并在打开 SSIS 日志记录的情况下运行包,则会再次创建该表并弹出相同的错误。
“数据库中已经存在一个名为‘sysssislog’的对象。”
我遇到了同样的错误。问题是我没有 dbo 权限来创建系统表和存储过程。
因此它将在我的用户名下创建 sysssislog 表:
DOMAIN\user.sysssislog
而不是
System Tables dbo.sysssislog
它还在普通存储过程而不是系统存储过程下创建一个存储过程
sp_ssis_addlogentry
。
sp_ssis_addlogentry
尝试插入到 dbo.sysssislog
,但不能,因为它不存在。但用户这样做时抱怨对象已经存在。
h/t 至 vikas ojha