0

我有两个表说 table1 和 table2 两个表中的所有列都是相同的,但是 table2 有一些额外的列,我想在其中插入一些默认值,并且表的名称是在运行时生成的,所以表名可以更改,所以我不能声明表的字段。

4

2 回答 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 回答