SQL SERVER 2表之间导数据

场景一:从备份数据库整表导到别一个数据库,或者从一张表导到另一张表,并保持自增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  但是这种方法创建的新表会丢失旧表的键约束,如果只是备份数据之类的可以使用,生产环境不可取。

posted @ 2021-09-29 11:35  sblack  阅读(206)  评论(0编辑  收藏  举报