我正在研究SSIS上的ETL任务。在这个任务中,我试图更新一个表'Vendor',我想在另一个表中使用'where'子句中的一些引用和条件。这就是我想要做的事情 -
ALTER TABLE Vendor ADD Imported BIT
Update Vendor
SET Imported = 1
-- (133 row(s) affected)
Update Vendor
SET Imported = 0
where VendorName in (Select VendorName from MyDatabase..Vendor)
Update l
SET VendorName = t.VendorName, -- Vendor name looks imported one has proper Capital letters in name, use the one from to-be-imported one
Address1 = t.Address1,
Address2 = t.Address2,
City = t.City,
State = t.State,
Country = t.Country,
PostalZip = t.PostalCode,
Phone = t.NewPhone,
Email = t.Email
From MyDatabase..Vendor l, Vendor t
where l.VendorName = t.VendorName
and t.Imported = 0
-- (2 row(s) affected)
请建议我在SSIS包装上应该采用哪种合适的程序。我可以使用Execute SQL Task但是想要使用替代方法,如在执行SQL任务中我必须为每个SQL语句创建一个单独的任务。 您的宝贵回复将受到欢迎。
答案 0 :(得分:1)
要执行这样的多语句执行SQL任务,必须使用分号结束每个单独的语句。这样做,它会起作用。