insert into B(lieName,lieValue) select '列名',列名 from A
if OBJECT_ID('tb') is not null drop table tb; go create table tb (id int,name varchar(10)); go insert into tb values(1,'Tom'); goif OBJECT_ID('sh') is not null drop table sh; go create table sh (colname sysname,coldata sql_variant); godeclare c cursor local for select name from sys.columns where [object_id]=object_id('tb');
declare @sql varchar(1000),@colname sysname;open c;fetch next from c into @colname; while @@FETCH_STATUS=0 begin set @sql='insert into sh select '+ quotename(@colname,'''')+','+quotename(@colname)+' from tb'; exec(@sql); fetch next from c into @colname; endclose c;select * from sh; /* id 1 name Tom */
select '列名',列名 from A
if OBJECT_ID('tb') is not null
drop table tb;
go
create table tb (id int,name varchar(10));
go
insert into tb values(1,'Tom');
goif OBJECT_ID('sh') is not null
drop table sh;
go
create table sh (colname sysname,coldata sql_variant);
godeclare c cursor local for
select name from sys.columns where [object_id]=object_id('tb');
declare @sql varchar(1000),@colname sysname;open c;fetch next from c into @colname;
while @@FETCH_STATUS=0
begin
set @sql='insert into sh select '+
quotename(@colname,'''')+','+quotename(@colname)+' from tb';
exec(@sql);
fetch next from c into @colname;
endclose c;select * from sh;
/*
id 1
name Tom
*/
厉害 这个东西在出发器里怎么 尤其是exec里不能用inserted