我有2张桌子A和桌子B;表B通过外键链接到表A.
TABLE A
的结构有点像
PK Id
DeliveryChannelValue
DeliverychannelId
Date time
Table B
具有此结构
PK Id UniqueIdentifiers
Date time
FK tableA id
现在在存储过程中,我将唯一标识符作为逗号分隔值,因此根据该列表中的项目数,我必须在表A和表B中创建相同数量的行。
如果以逗号分隔值的项目数为3,那么将有3行插入到表A中,3行将插入到表B中。我试图避免使用游标。
请建议有效的方法。
答案 0 :(得分:0)
您可以使用this CodeProject project拆分功能分隔值,然后使用已知的DateTime标记使表保持同步。这假设这些值不会不断更新,这可能会导致DateTime重复问题:如果是这种情况,您需要使用添加GUID值代替YOURDATE字段,如下所示:
DECLARE @DATESTAMP DATETIME = GETDATE()
INSERT INTO TABLE_A (ID, YOURDATE)
SELECT item, @DATESTAMP
FROM dbo.[FN_SPLIT](@yourinputstring)
GO
INSERT INTO TABLE_B(YOURDATE, TABLE_A_ID)
SELECT @DATESTAMP, ID
FROM TABLE_A
WHERE YOURDATE = @DATESTAMP
GO