table1とtable2という2つのテーブルがあり、両方のテーブルのすべての列は同じですが、table2にはいくつかのデフォルト値を挿入したい余分な列があり、テーブルの名前は実行時に生成されるため、テーブル名を変更できるため、宣言できませんテーブルのフィールド。
質問する
283 次
2 に答える
0
必要なのは動的クエリです。
以下のコードをご覧ください
create table #temp1(id int, prodName varchar(max))
insert into #temp1 values(1,'a')
insert into #temp1 values(2,'b')
insert into #temp1 values(3,'c')
insert into #temp1 values(4,'d')
declare @TableName varchar(20)
set @TableName='NewTable';
declare @QueryCreateTable varchar(max);
set @QueryCreateTable =
'create table ' + @TableName + ' (id int, prodName varchar(max), defaultCol int DEFAULT 0)
insert into ' + @TableName + ' (id,prodName)
(
select * from #temp1
)
select * from ' + @TableName;
exec (@QueryCreateTable);
drop table #temp1
于 2013-02-20T08:30:53.257 に答える
0
あなたの質問に対する答えを書きました。次のリンクで表示できます。
参考までに。ソースと宛先のパラメーターを proc に渡すと、ソースから宛先にデータが自動的に挿入されます。
于 2013-02-20T08:56:11.963 に答える