2

我有 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,则表 A 中将插入 3 行,表 B 中将插入 3 行。我试图避免使用游标。

请提出有效的方法来做到这一点。

4

1 回答 1

0

您可以使用此 CodeProject 项目拆分功能来分隔值,然后使用已知的 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
于 2013-10-29T17:03:56.543 回答