id = @id の列 a、b、c、d を持つ行を取得し、d が異なることを除いて a、b、c に同じ値を持つ新しい行を挿入するストアド プロシージャを作成しようとしています。
この場合、約 50 列ありますが、異なる必要があるのは 1 列だけです。
id = @id の列 a、b、c、d を持つ行を取得し、d が異なることを除いて a、b、c に同じ値を持つ新しい行を挿入するストアド プロシージャを作成しようとしています。
この場合、約 50 列ありますが、異なる必要があるのは 1 列だけです。
d
が であり、にあるものの代わりに、INT
たとえば、挿入したい場合、次のようになります。15
dbo.oldtable
INSERT dbo.newtable(a,b,c,d)
SELECT a,b,c,d = 15
FROM dbo.oldtable
WHERE id = @id;
変数からのものである可能性が高いため、次のようになります。
INSERT dbo.newtable(a,b,c,d)
SELECT a,b,c,d = @whatever
FROM dbo.oldtable
WHERE id = @id;
申し訳ありませんが、「d を除くすべての列」と言う省略表現はありません...それらを個別にリストする必要があります。タイピングに問題がある場合は、簡単に対処する方法があります。オブジェクト エクスプローラーを開き、サーバー、データベース、テーブル、および問題のテーブルを展開してから、列ノードをクエリ ウィンドウにドラッグします。
d
次に、そのリストから列を削除するだけです。
これが役立つかもしれません-
INSERT INTO tablename
(a, b, c, d)
VALUES
(SELECT col1, col2, col3, 'newcolvalue'
FROM tablename
WHERE id = @id);