あるテーブルのデータを、2 列のキーを持つテーブルに挿入しようとしています。ソース テーブルは宛先のキーを共有しません。宛先の両方のキー列は varchar です。
私は挿入ステートメントを持っています:
INSERT INTO Table1 (Invoice, DetailLine, SomeData1, SomeData2)
SELECT ('1'+RIGHT('00000000000000' + CONVERT(varchar, DatePart(ns,SYSDATETIME()), 14), 0, 'STARTING_VALUE_1407', [ActualValue]
FROM Table2;
上記を実行すると、DateTime2 オブジェクトのミリ秒は、その値を 1 回だけ評価しているかのように、すべて同じになります。これにより、これを一時的な一意のキーとして使用できなくなります。SELECT ステートメントで SYSDATETIME() またはその他の日付関数を使用して、行ごとに値を再評価することはできますか? そうでない場合、通常は宛先テーブルのキーを共有しないデータを選択するときに INSERT INTO SELECT を実行するときに一意の値を生成する方法はありますか?