我需要同步两个表。
表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
的列中TableB
。
我在做什么?
我正在使用 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
,并且存储过程不能在这里调用,因为除了afterMerge
之外不允许任何 TSQL 事物。INSERT
WHEN NOT MATCHED BY TARGET THEN