現有數據庫a和數據庫b,數據庫a里有表table1,數據庫b里有表table2.
現在要把表table1里的記錄復制到table2中,不同情況采用不同方法:
1.table1和table2表結構相同
useb
insertintotable2select*froma.dbo.table1
2.table1和table2表結構不相同
useb
insertintotable2(c1,c2)selectc1,c2froma.dbo.table1
coolxiaoyi:c1,c2為需要復制的列。
3.如果還沒有創建表table2,可以直接將table1的表結構和記錄都復制到數據庫b中
useb
select*intotable2froma.dbo.table1
coolxiaoyi:這樣做有一個問題,就是有時主外鍵關系不能復制過去(不知道什么原因),需要在執行完sql語句后自己再設置一下主外鍵。
4.注意table2中是否有自增長字段
如果有自增長字段,使用以上sql語句時會報錯:僅當使用了列列表并且IDENTITY_INSERT為ON時,才能為表'table2'中的標識列指定顯式值。
coolxiaoyi:可以先修改table2表,去掉自增長標識,復制完記錄后再修改回來。
或者用2.中的sql語句,不復制自增長字段,復制其他字段。
sqlserver復制表結構,復制表數據
*同一機器上sqlserver復制表結構及數據收藏
一簡單的復制
復制表1中id,r_p,r_p1,r_p2,r_p3,r_p4到表2的r_id,x_p,x_p1,x_p2,x_p3中,x_id為以固定值(1)。主要是方便從某表初始化某些值
insertinto表2(x_id,r_id,x_p,x_p1,x_p2,x_p3)select1,id,r_p,r_p1,r_p2,r_p3from表1
二所有表數據一起復制(一個數據庫中的所有表結構及數據一起復制到
新聞熱點
疑難解答