SSIS - 无法在对象 'dbo.FACT_TABLE' 中插入重复键
SSIS - Cannot insert duplicate key in object 'dbo.FACT_TABLE'
我知道在 Fact Table 中我们不能有重复的记录,但我是 SQL 集成服务的新手,我正在寻找一个可以识别的包,如果事实表中已存在代理键...
此刻我有这个包裹:
每个查找对象都获取我的数据仓库中每个维度的业务键。
第一次运行很好,因为事实上Table我没有记录,但接下来我做了测试,我又运行同样的数据(因为将来我想每 10 分钟 运行 这个包,所以它会经常获得相同的数据)并且我收到以下错误(我非常理解我想建立一种自动处理此问题的方法):
[Load into dbo_DimCI [144]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Violation of PRIMARY KEY constraint 'PK_FACT_FACT_TABLE'. Cannot insert duplicate key in object 'dbo.FACT_TABLE'. The duplicate key value is (337, 44, 3, 19, 4682, 12).".
我需要在包中插入哪些对象才能处理此错误?
我相信您的意图是在每次加载时只加载增量。
这意味着如果一条记录已经存在于事实table中,则不应再次插入该记录。
您可以使用合并查询来实现此目的。
我没有加载事实的示例 table,但我可以向您指出一个 post 的示例,其中讨论了加载 Type 2 Dim Table。
您应该能够在您的 SSIS 包中使用这样的语句来更新您的事实 table。
很高兴回答任何进一步的问题。
干杯
尼辛
我知道在 Fact Table 中我们不能有重复的记录,但我是 SQL 集成服务的新手,我正在寻找一个可以识别的包,如果事实表中已存在代理键...
此刻我有这个包裹:
每个查找对象都获取我的数据仓库中每个维度的业务键。
第一次运行很好,因为事实上Table我没有记录,但接下来我做了测试,我又运行同样的数据(因为将来我想每 10 分钟 运行 这个包,所以它会经常获得相同的数据)并且我收到以下错误(我非常理解我想建立一种自动处理此问题的方法):
[Load into dbo_DimCI [144]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Violation of PRIMARY KEY constraint 'PK_FACT_FACT_TABLE'. Cannot insert duplicate key in object 'dbo.FACT_TABLE'. The duplicate key value is (337, 44, 3, 19, 4682, 12).".
我需要在包中插入哪些对象才能处理此错误?
我相信您的意图是在每次加载时只加载增量。
这意味着如果一条记录已经存在于事实table中,则不应再次插入该记录。
您可以使用合并查询来实现此目的。
我没有加载事实的示例 table,但我可以向您指出一个 post 的示例,其中讨论了加载 Type 2 Dim Table。
您应该能够在您的 SSIS 包中使用这样的语句来更新您的事实 table。
很高兴回答任何进一步的问题。
干杯 尼辛