問題は、データのソースが XML ファイル + XSD スキーマであるリレーショナル テーブルにデータをインポートすることです。XML ソースにはいくつかの出力があり、ノード間の関係は SSIS によって order_id (XML にはない生成された主キー値) として列に作成され、たとえば注文の詳細で外部キー order_id を取得します。
ファイルがインポートされ、注文と注文の詳細の間で正しい参照整合性が得られますが、キーは各ファイル内でのみ一意であるため、同じファイルが再度インポートされると、ssis によって同じ ID が生成/使用されます。
どうすれば一意性を確保し、ID の生成方法を制御できますか。
動作する注文テーブルで ID 列を order_id として使用しようとしましたが、注文の詳細などの参照テーブルに反映されません...
私たちが持っている場合の例
<order some attributes ...>
<orderdetails some attributes ...></orderdetails>
<orderdetails some attributes ...></orderdetails>
</order>
ssis に行をインポートさせるだけで、次のような結果が得られます。
注文表
order_id = 4 、残りのデータ列
注文明細テーブル
行 1 orderdetail 列、order_id=4 行 2 orderdetail 列、order_id=4
すべて問題ありませんが、明らかに半ランダムな id = 4 がどのように生成されるのかわかりません
増分キーが使用されている場合 (シードが 1 から始まると仮定)
注文表
order_id = 1 、残りのデータ列
注文明細テーブル
行 1 orderdetail 列 , order_id=4 <-- 以前に生成された SSIS と同じ 行 2 orderdetail 列 , order_id=4 <- 以前に生成された SSIS と同じ
外部キーのIDを詳細に1にしたいので、XMLデータをインポートするときに参照整合性を維持するために見逃した中間ステップ/設定があると思います。
任意のポインタをいただければ幸いです。