我创建了一个SSIS包,它接受一个CSV文件并将其导入名为“OPEX_Spend”的表中。
我在OPEX_Spend表中添加了一个外键,但是当我运行查询时,OPEX_Spend表中的Account_ID列显示为“NULL”。这是为什么?我是否必须在数据流中加入某种查找?目前数据流如下:
以下是表格的设置方式:
CREATE TABLE OPEX_Accounts
(
OPEX_ID int IDENTITY (1,1) PRIMARY KEY,
OPEX_Name varchar(50),
GL_Account varchar(50)
)
CREATE TABLE OPEX_Spend
(
Actuals_ID int IDENTITY (1,1) PRIMARY KEY,
Account_ID int,
CONSTRAINT FK_OPEXID
FOREIGN KEY (OPEX_ID) REFERENCES OPEX_Accounts (OPEX_ID),
Actuals_Date varchar(50),
Transaction_Text varchar (50),
Actuals_Amount numeric
)
答案 0 :(得分:2)
您可以在数据流任务上使用查找转换来执行此操作:
基本上,您需要将源数据中的帐户名称用作OPEX_Accounts中帐户名称的连接,以获取OPEX_ID。然后,您可以配置查找转换,将OPEX_ID作为管道中的新列添加,并将其映射到目标表。
同样重要的是决定如何处理不产生有效查找的源行。您可以使用这些抛出错误来阻止程序包运行,或将它们指向特殊的不匹配输出。