テーブルから別のテーブルに行を移動したいので、delete from [foo] output deleted.[col] into [bar] (col)
は良いオプションのように見えます。削除されたデータといくつかのハードコードされた値を出力ステートメントで挿入する
しかし、列は同一ではありません。だから私はいくつかのハードコードされた値(および理想的にはプログラムによって決定された値)をデスティネーションテーブルに挿入したいと思います。
デモを行うためにいくつかのテーブルを設定しました。
create table delete_output_test (
thing1 int not null,
thing2 varchar(50),
thing3 varchar(50)
)
create table delete_output_test2 (
thing1 int not null,
thing2 varchar(50),
thing3 varchar(50),
thing4 int
)
insert into delete_output_test values (0, 'hello', 'world'),
(1, 'it''s', 'me'),
(2, 'i', 'was'),
(3, 'wondering', 'if')
は今...私はあまりにも貧しいないよ場合は罰金別の作品に一つのテーブルから移動
delete from delete_output_test2
output deleted.thing1,
deleted.thing2,
deleted.thing3
into delete_output_test
(thing1,
thing2,
thing3)
しかし、私はその最後の列を移入したい場合は?
delete from delete_output_test2
output deleted.thing1,
deleted.thing2,
deleted.thing3
into delete_output_test
(thing1,
thing2,
thing3,
4)
'4' の近くに不適切な構文。 '。'、ID、PSEUDOCOL、またはQUOTED_IDが必要です。
私はかなり新しくSQLです。だから私はそれらのことが何であるかも分かりません。
なぜ、値をハードコードして挿入できないのですか?または、私が賢くなるようにしたい場合は、4
をselect
と置き換えてください。
私はそれがなぜ私に起こらなかったのか分かりません。ありがとう! – mac9416
@ mac9416お手伝いします! – SqlZim
それはクールでした。 –