共有 A B 两个表 每个表的字段基本相同 字段数量很多(40UP)
A表比B表多几个字段
我需要根据指定的ID把A表中的数据复制到B表当中(多余的几个字段的数据就直接舍弃了)
当然我可以使用 insert into B (...) value (..)
的方法 但是40多个字段实在太麻烦了
有简单一点的语句能解决问题的吗
A表比B表多几个字段
我需要根据指定的ID把A表中的数据复制到B表当中(多余的几个字段的数据就直接舍弃了)
当然我可以使用 insert into B (...) value (..)
的方法 但是40多个字段实在太麻烦了
有简单一点的语句能解决问题的吗
A表比B表多几个字段
我需要根据指定的ID把A表中的数据复制到B表当中(多余的几个字段的数据就直接舍弃了)
当然我可以使用 insert into B (...) value (..)
的方法 但是40多个字段实在太麻烦了
有简单一点的语句能解决问题的吗
得到表中除userno_fm、userno_to的列(好象也不简单)
例如:userno_fm、userno_to
create table test(
num int identity(1,1),
userno_fm varchar(10),
userno_to varchar(10),
username varchar(10))
select * from testdeclare @sql varchar(8000)
select @sql=''
select @sql=@sql+','+[name] from
(select [name] from syscolumns where object_id(N'[test]')=[id] and [name] not in ('userno_fm','userno_to')) A set @sql='select '+stuff(@sql,1,1,'')+' from [test]'
--print @sql
exec (@sql)drop table test
---对应起来就OK了.
select @sql=''
select @sql=@sql+','+[name] from
(select [name] from syscolumns where object_id(N'[test]')=[id] and [name] not in ('userno_fm','userno_to')) A --这里写你不需要的列 set @sql='insert into b select '+stuff(@sql,1,1,'')+' from a'
exec (@sql)
但是只有目标表不存在的时候才可以用 没有复制记录的方法吗
有个 select * into t2 from t1 where 1=2 的方法可以整个记录复制
但是只有目标表不存在的时候才可以用 没有复制记录的方法吗
---------------------------------------------
如果目标表存在的话,用insert t2 Select 字段1,字段2,字段10,....From t1 Where ...
如果你想让记录达到同步的效果,用触发器