我有两个表说 table1 和 table2 两个表中的所有列都是相同的,但是 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 回答