SQL Server(2005)にストアドプロシージャを書き込んで、簡単に聞こえるようにしようとしていますが、実際に思ったより難しいことが実証されています。レコードをコピーするためのTSQLストアドプロシージャ
私は30列と50,000行のテーブルを持っています。
レコードの数は固定されていますが、ユーザーは既存のレコードのフィールドを編集できます。
繰り返しデータをキー入力しなくても保存するには、レコードを選択し、その詳細をコピーするIDの範囲を指定する必要があります。
書き込みしようとしているSPには、ソースレコードの主キーと、データがコピーされるレコード範囲の下位および上位の主キーがあります。
宛先レコードのPKは明らかに変更されません。
私は、SPがSELECTを実行する必要があると考えました - すべてのデータをコピーし、UPDATE - 指定された宛先レコードにデータを書き込むようにします。
SELECTの結果をUPDATEに挿入する方法を知りません。 一時テーブルは役に立たないでしょう - それを選択することは、テーブルから選択することとまったく同じです!私は必要なもの
が効果的に単一のレコードである変数であるので、私のようなものに行くことができます。
@tempRECORD = SELECT * FROM SOURCETABLE WHERE ID = @sourcePK
UPDATE SOURCETABLE
SET FIELD1 = @tempRECORD.FIELD1,
FIELD2 = @tempRECORD.FIELD2,
...
FIELD30 = @tempRECORD.FIELD30
WHERE ID >= @LOWER_id AND ID <= @UPPER_id
をしかし、私はどのように、またはあなたもできれば分かりません。
私はまた、私が考えていない他の賢い方法にもオープンしています!
ありがとうございました!
ブリリアント!どうもありがとう。 – Merlin