问题如下:
我有很多这样的表,列都超过了50列,
但是我要从别的数据库上获得新的数据并插入到这个表(我要更新表A,表B的结构和表B一样).
但是我用INERT INTO A SELECT * FROM B的话,因为其中有自动更新列不能插入.各位高手,除了一列列的打列名,请问还有什么好方法?
我有很多这样的表,列都超过了50列,
但是我要从别的数据库上获得新的数据并插入到这个表(我要更新表A,表B的结构和表B一样).
但是我用INERT INTO A SELECT * FROM B的话,因为其中有自动更新列不能插入.各位高手,除了一列列的打列名,请问还有什么好方法?
set insert_identity 自增长列名 on--然后
INERT INTO A SELECT * FROM B--再
set insert_identity 自增长列名 on
sql管理工具里面自动生成select和insert脚本。
SELECT @STR=ISNULL(@STR+',','')+NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('TB') AND NAME!='ID'
SET @STR='INSERT A('+@STR+') SELECT '+@STR+' FROM B'
EXEC(@STR)
set IDENTITY_INSERT 自增长列名 on--然后
INERT INTO A SELECT * FROM B--再
set IDENTITY_INSERT 自增长列名 on
A表的newid属性去掉改为普通列,这个不算改表结构。而且newid只是默认值,似乎不会影响插入,除非你有其他约束
还是有风险的。