insert 另一张表 select a.* from 一张表 a left join 另一张表 b on a.id=b.id where b.id is null
INSERT TB SELECT * FROM TBB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE ID=T.ID)
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'TABLE1_D' 中为标识列指定显式值。 这是出错提示,怎么解决
SET IDENTITY_INSERT [备份表] ON insert into [备份表] select * from [要备份的表]
1、replication(复制) 自动、同步时间最短 2、logshipping 自动、同步有一定时间延迟 3、写触发器 自动 4、写语句执行 手动create table AAA(Test int) goinsert into AAA(Test) select 1 union all select 2 union all select 3 goselect * from AAAcreate table BBB(Test int) go --=============== Insert Into BBB select * from AAAselect * from BBB
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1 <>1 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from a;
INSERT TB(A,B,C..) SELECT A,B,C... FROM TBB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE ID=T.ID)可以指出不是IDENTITY的列, 要不然就按上面的SET 一下,不过最好是指定不是自增列的
OrchidCat 怎么要知道备份表字段 其实我最想做的是新建一张表(与被备份的表字段一样),然后数据再备份进去(备份时有一个条件就是我选择的当年数据),因为数据表比较多,我是从sysobjects中取出表名,然后找到syscolumns中得到字段名,然而新生成一张表该如何写,Insert Into 该如何写
1、单个表 利用导出脚本的方式,将结构备出。然后运行脚本,建立新表。之后,使用上述的SQL语句,加上所要数据的where条件即可。2、多表处理 建立存储过程,利用游标对应创建新表。 Declare newTable Cursor For --取表名部分 Open newTable Fetch Next From newTable Into @Tbname WHILE @@FETCH_STATUS = 0 Begin Set @Sql = 'Create table [实例].[数据库].[架构].'+ @Tbname + ' as select * from [实例].[数据库].[架构].'+ @Tbname where [你限定的条件] exec(@Sql) FETCH NEXT FROM newTable Into @Tbname END CLOSE newTable DEALLOCATE newTable 上述是不严谨的示例,请参考!
insert into [备份表] select * from [要备份的表]
insert into [备份表] select * from [要备份的表]
2、logshipping 自动、同步有一定时间延迟
3、写触发器 自动
4、写语句执行 手动create table AAA(Test int)
goinsert into AAA(Test)
select 1 union all
select 2 union all
select 3
goselect * from AAAcreate table BBB(Test int)
go
--===============
Insert Into BBB
select * from AAAselect * from BBB
法一:select * into b from a where 1 <>1
法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from a;
FROM TBB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE ID=T.ID)可以指出不是IDENTITY的列,
要不然就按上面的SET 一下,不过最好是指定不是自增列的
1、单个表
利用导出脚本的方式,将结构备出。然后运行脚本,建立新表。之后,使用上述的SQL语句,加上所要数据的where条件即可。2、多表处理
建立存储过程,利用游标对应创建新表。
Declare newTable Cursor For
--取表名部分
Open newTable
Fetch Next From newTable
Into @Tbname WHILE @@FETCH_STATUS = 0
Begin
Set @Sql = 'Create table [实例].[数据库].[架构].'+ @Tbname + ' as select * from [实例].[数据库].[架构].'+ @Tbname where [你限定的条件]
exec(@Sql)
FETCH NEXT FROM newTable
Into @Tbname
END CLOSE newTable
DEALLOCATE newTable 上述是不严谨的示例,请参考!