主キーに基づいて、テーブルのリスト (~30) 内のデータを選別しようとしています。
私のアプローチは次のとおりです。 1.中間テーブルを作成し、各テーブルに必要なデータをロードします
2.元のテーブル
を切り捨てます 3.中間テーブルのデータを元のテーブルに挿入します。
これまでに使用したコードは次のとおりです。
declare @table nvarchar(max)
open tab
fetch next from tab into @table
while(@@FETCH_STATUS = 0)
begin
print @table
exec ('select * into ' +@table+'_intermediate from '+@table+' where P_ID in( select P_ID from pc_table )')
exec ('truncate table '+@table)
exec ('insert into '+@table+' select * from '+@table+'_intermediate')
exec ('drop table '+@table+'_intermediate')
fetch next from tab into @table
end
close tab
deallocate tab
エラーが発生しました:
Cannot insert an explicit value into a timestamp column.
Use INSERT with a column list to exclude the timestamp column,
or insert a DEFAULT into the timestamp column.
したがって、そのエラーは、タイムスタンプ列に何も挿入できないことを示しています。
タイムスタンプの選択を避けるために、選択を避ける必要があります (つまり、select * を使用します)。
タイムスタンプ型以外のすべての列を選択する簡単な方法はありますか?それとも、情報スキーマにアクセスして、各テーブルの動的選択ステートメントを作成する必要がありますか?
(または暗黙の質問、私がやろうとしていることを行うためのより良い方法はありますか?)
ありがとう