场景一:从备份数据库整表导到别一个数据库,或者从一张表导到另一张表,并保持自增ID不变。
USE [mglog] GO SET IDENTITY_INSERT [user_golds_log] ON INSERT INTO [dbo].[user_golds_log] ([id] ,[user_id] ,[source_type] ,[source_id] ,[golds] ,[prev_golds] ,[ctime] ,[memo] ,[kind_id] ,[banker] ,[del_to_lotterypool] ,[add_from_lotterypool] ,[bet] ,[game_data1] ,[game_data2] ,[game_tax] ,[table_tax] ) SELECT [id] ,[user_id] ,[source_type] ,[source_id] ,[golds] ,[prev_golds] ,[ctime] ,[memo] ,[kind_id] ,[banker] ,[del_to_lotterypool] ,[add_from_lotterypool] ,[bet] ,[game_data1] ,[game_data2] ,[game_tax] ,[table_tax] FROM [mglogbak].[dbo].[user_golds_log] SET IDENTITY_INSERT [user_golds_log] OFF
场景二:把一个表的某个字段更新为另一张表的某个字段
表一,表二,
把表二的market_price更新到表一的price
具体sql:
update books set price=mp.market_price from books b,books_market_price mp where b.book_id=mp.book_id
结果:
场景三:使用select * into newtable from oldtable 但是这种方法创建的新表会丢失旧表的键约束,如果只是备份数据之类的可以使用,生产环境不可取。