【发布时间】:2012-12-30 00:31:08
【问题描述】:
我需要同步两个表。
表A
Id Name
表B
Id Name RefID --It's a Foreign key, defined as primary key in Table "TableReference"
表格参考
RefID -- Identity Column, auto increment
我需要合并TableA 和TableB,这样每次在TableB 中插入时,都应该将一个值插入到TableReference 中,并且应该将插入的值复制到@ 的RefId 列中987654329@.
我在做什么?
我正在使用 SSIS,因此我需要一个基于 SSIS 的解决方案或基于 SQL 的解决方案。我知道如何使用 Merge SQL 命令合并表,但我无法将值插入TableRef 并将其复制回TableB。无法弄清楚我怎么能做到这一点。 SQL 用户定义函数不允许INSERT 所以我不能使用它。
Merge TabaleB T
Using Table A S
On S.Id=T.Id
WHEN MATCHED THEN
UPDATE
T.ID=S.ID,
T.NAME=S.NAME
WHEN NOT MATCHED BY TARGET THEN
INSERT(S.ID,S.NAME, {Somehow here i need a function call that inserts in TableRef and Returns SCOPE_IDENTITY})
问题是 T-SQL 函数不允许 INSERT 并且不能在此处调用存储过程,因为 Merge 在 WHEN NOT MATCHED BY TARGET THEN 之后不允许除 INSERT 之外的任何 TSQL 事物。
【问题讨论】:
标签: sql sql-server-2008 tsql ssis