資源描述:
《sql server 復(fù)制表結(jié)構(gòu),復(fù)制表數(shù)據(jù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、現(xiàn)有數(shù)據(jù)庫(kù)a和數(shù)據(jù)庫(kù)b,數(shù)據(jù)庫(kù)a里有表table1,數(shù)據(jù)庫(kù)b里有表table2.現(xiàn)在要把表table1里的記錄復(fù)制到table2中,不同情況采用不同方法:1.?table1和table2表結(jié)構(gòu)相同use?binsert?into?table2?select?*?from?a.dbo.table12.?table1和table2表結(jié)構(gòu)不相同use?binsert?into?table2(c1,c2)?select?c1,c2?from?a.dbo.table1coolxiaoyi:c1,c2為需要復(fù)制的列。3.?如果還沒(méi)有創(chuàng)建表table2,可以
2、直接將table1的表結(jié)構(gòu)和記錄都復(fù)制到數(shù)據(jù)庫(kù)b中use?bselect?*?into?table2?from?a.dbo.table1coolxiaoyi:這樣做有一個(gè)問(wèn)題,就是有時(shí)主外鍵關(guān)系不能復(fù)制過(guò)去(不知道什么原因),需要在執(zhí)行完sql語(yǔ)句后自己再設(shè)置一下主外鍵。4.?注意table2中是否有自增長(zhǎng)字段如果有自增長(zhǎng)字段,使用以上sql語(yǔ)句時(shí)會(huì)報(bào)錯(cuò):僅當(dāng)使用了列列表并且?IDENTITY_INSERT?為?ON?時(shí),才能為表'table2'中?的標(biāo)識(shí)列指定顯式值。coolxiaoyi:可以先修改table2表,去掉自增長(zhǎng)標(biāo)識(shí),復(fù)制完記錄后
3、再修改回來(lái)?;蛘哂?.中的sql語(yǔ)句,不復(fù)制自增長(zhǎng)字段,復(fù)制其他字段。sqlserver復(fù)制表結(jié)構(gòu),復(fù)制表數(shù)據(jù)*同一機(jī)器上sqlserver復(fù)制表結(jié)構(gòu)及數(shù)據(jù)收藏一簡(jiǎn)單的復(fù)制復(fù)制表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二所有表數(shù)據(jù)一起復(fù)制(一個(gè)數(shù)據(jù)庫(kù)中的所有表結(jié)構(gòu)及數(shù)
4、據(jù)一起復(fù)制到一個(gè)新的數(shù)據(jù)庫(kù)中):在企業(yè)管理器中,打開數(shù)據(jù)庫(kù),選擇右側(cè)的表,右擊“表”,選擇“導(dǎo)出數(shù)據(jù)”,選好源數(shù)據(jù)庫(kù)和目的數(shù)據(jù)庫(kù)后,從源數(shù)據(jù)庫(kù)復(fù)制表和視圖"二:sqlserver復(fù)制表結(jié)構(gòu)在企業(yè)管理器中,全選想要復(fù)制的表,右擊所有任務(wù)/生成SQL腳本.保存為一個(gè)*.sql文件.再在查詢分析器中打開.在菜單欄下面中間位置,選擇一個(gè)數(shù)據(jù)庫(kù),然后把剛才保存的sql文件復(fù)制進(jìn)去,點(diǎn)勾,再按F5執(zhí)行.表結(jié)構(gòu)復(fù)制成功.復(fù)制表數(shù)據(jù)使用SQLServer2000自帶的“生成SQL腳本”工具,可以生成創(chuàng)建表、視圖、存儲(chǔ)過(guò)程等的SQL腳本。那么,能否將表中的數(shù)據(jù)也
5、生成為SQL腳本,在查詢分析器中執(zhí)行這些腳本后自動(dòng)將數(shù)據(jù)導(dǎo)入到SQLServer中呢?答案是肯定的。下面的存儲(chǔ)過(guò)程是一位高人寫的,這位高人的姓氏已無(wú)人知曉,但SQLServer社區(qū)中偶爾還可看到此不朽之作。CREATEPROCEDUREdbo.OutputData@tablenamesysnameASdeclare@columnvarchar(1000)declare@columndatavarchar(1000)declare@sqlvarchar(4000)declare@xtypetinyintdeclare@namesysnamedec
6、lare@objectIdintdeclare@objectnamesysnamedeclare@identintsetnocountonset@objectId=object_id(@tablename)if@objectIdisnull--判斷對(duì)象是否存在beginprint@tablename+'對(duì)象不存在'returnendset@objectname=rtrim(object_name(@objectId))if@objectnameisnullorcharindex(@objectname,@tablename)=0beginpri
7、nt@tablename+'對(duì)象不在當(dāng)前數(shù)據(jù)庫(kù)中'returnendifOBJECTPROPERTY(@objectId,'IsTable')<>1--判斷對(duì)象是否是表beginprint@tablename+'對(duì)象不是表'returnendselect@ident=status&0x80fromsyscolumnswhereid=@objectidandstatus&0x80=0x80if@identisnotnullprint'SETIDENTITY_INSERT'+@TableName+'ON'--定義游標(biāo),循環(huán)取數(shù)據(jù)并生成Insert語(yǔ)
8、句declaresyscolumns_cursorcursorforselectc.name,c.xtypefromsyscolumnscwherec