如题

解决方案 »

  1.   

    insert into B(lieName,lieValue)
    select '列名',列名 from A
      

  2.   


    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
    */
      

  3.   


    厉害 这个东西在出发器里怎么 尤其是exec里不能用inserted
      

  4.   

    将 inserted 表内容转存到全局临时表中,再用于 exec 中。