假设A,B表用ID字段连接declare @sql varchar(8000)
select @sql=isnull(@sql+',','')+a.name+'=b.'+a.name
from syscolumns a,syscolumns b
where a.id=object_id('A')
and  b.id=object_id('B')
and a.name=b.name
and a.xusertype=b.xusertype
and a.name<>'ID'exec('update A set '+@sql+' from B where A.ID=B.ID')

解决方案 »

  1.   

    老大,不太懂,能说说吗?我的B表是用C#从客户端返回的 Dataset,A表是现场查询的
      

  2.   

    datatable 用FOREACH 循环写SQL语句!
      

  3.   


    declare @var_sql varchar(8000)
    declare @var_stable varchar(128)
    declare @var_otable varchar(128)
    declare @var_fldlist varchar(4000)set @var_stable='lx1' --目标表名
    set @var_otable='lx2' --源表名set @var_fldlist=''
    select @var_fldlist=@var_fldlist + t1.[name] + ',' from (
    select b.[name] from sysobjects as a inner join syscolumns as b on a.[id]=b.[id]
    where a.xtype='u' and a.[name]=@var_stable
    ) as t1 inner join 
    (
    select b.[name] from sysobjects as a inner join syscolumns as b on a.[id]=b.[id]
    where a.xtype='u' and a.[name]=@var_otable
    ) as t2 on t1.[name]=t2.[name]set @var_fldlist=left(@var_fldlist,len(@var_fldlist)-1)
    set @var_sql='insert into ' + @var_stable + '(' + @var_fldlist + ') select ' + @var_fldlist + ' from ' + @var_otable
    print @var_sql