2

テーブル A とテーブル B が 2 つあります。テーブル 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 の重複の問題が発生する可能性があることを前提としています。その場合は、以下の YOURDATE フィールドの代わりに GUID 値を追加する必要があります。

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 に答える