資源描述:
《sqlserver復(fù)制表結(jié)構(gòu)復(fù)制表數(shù)據(jù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、現(xiàn)有數(shù)據(jù)庫(kù)a和數(shù)據(jù)庫(kù)b,數(shù)據(jù)庫(kù)a里有表tablel,數(shù)據(jù)庫(kù)b里有表table2.現(xiàn)在.要把表tablel里的記錄S制到table2屮,不同情況采用不同方法:1.tablel和table2表結(jié)構(gòu)相同usebinsertintotable2select*froma.dbo.tablel2.tablel和table2表結(jié)構(gòu)不相同usebinsertintotable2(cl,c2)selectcl,c2froma.dbo.tablelcoolxiaoyi:cl,c2為惡要復(fù)制的列。3.如果還沒(méi)有創(chuàng)建表ta
2、ble2,可以直接將tablel的表結(jié)構(gòu)和記錄都復(fù)制到數(shù)據(jù)庫(kù)b中usebselect*intotable2froma.dbo.tablelcoolxiaoyi:這樣做有一個(gè)問(wèn)題,就是有吋主外鍵關(guān)系不能復(fù)制過(guò)去(不知道什么原因),需要在執(zhí)行完sql語(yǔ)句后自己再設(shè)置一下主外鍵。4.注意table2中是否有自増長(zhǎng)字段如果有自增長(zhǎng)字段,使用以上sql語(yǔ)句時(shí)會(huì)報(bào)錯(cuò):僅當(dāng)使用了列列表并且IDENTITYJNSERT為ON時(shí),才能為表1table2'中的標(biāo)識(shí)列指定顯式值。coolxiaoyi:可以先修改table
3、2表,去掉自增忪標(biāo)識(shí),復(fù)制完記錄后再修改回來(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_pl,r_p2,r_p3,r_p4到表2的rjd,x_p,x_pI,x_p2,x_p3巾,x_id力以固定值(1>。主要是方便從某表初始化某些值insertinto表2(x_id,r_id,x_p,x_pI,x_p2,x_p3)selectl,id,r_p,r_pl,r
4、_p2,r_p3from表1二所有表數(shù)據(jù)一起復(fù)制(一個(gè)數(shù)據(jù)庫(kù)中的所有表結(jié)構(gòu)及數(shù)據(jù)一?起復(fù)制到一個(gè)新的數(shù)據(jù)庫(kù)中h在企業(yè)管理器中,打開(kāi)數(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文件.再在查詢(xún)分析器屮打開(kāi).在菜單欄下而屮間位置,選擇一個(gè)數(shù)裾庫(kù),然后把剛才保存的sql文件S制進(jìn)去,點(diǎn)勾,再按F5執(zhí)行.表結(jié)構(gòu)fi制成功.復(fù)制表數(shù)據(jù)使用SQ
5、LServer2000自帶的“生成SQL腳本”工具,可以生成創(chuàng)建表、視圖、存儲(chǔ)過(guò)程等的SQL腳本。那么,能否將表屮的數(shù)據(jù)也生成為SQL腳本,在査詢(xún)分析器中執(zhí)行這些腳本后自動(dòng)將數(shù)據(jù)導(dǎo)入到SQLServer中呢?答案是肯定的。下面的存儲(chǔ)過(guò)程是一位高人寫(xiě)的,這位高人的姓氏己無(wú)人知曉,但還可看到此不朽之作。CREATEPROCEDUREdbo.OutputData@tablenamesysnameASdeclare@columnvarchar(lOOO)declare@columndatavarchar(l
6、OOO)declare@sqlvarchar(4000)declare@xtypetinyintdeclare@namesysnamedeclare@objectldintdeclare@objectnamesysnamedeclare@identintsetnocountonset@objectld=object」d(@tablename)if@objectldisnull-判斷對(duì)象是否存在beginprint@tablename+1對(duì)象不存在1returnendset@objectname=rt
7、rim(object_name(@objectld))if@objectnameisnullorcharindex(@objectname,@tablename)=0beginprint@tablename+'對(duì)象不在當(dāng)前數(shù)據(jù)庫(kù)巾1returnendifOBJECTPROPERTY((Sobjectld/lsTable*)-判斷對(duì)象是否是表beginprint@tablename+1對(duì)象不是表1returnendselect@ident=status&0x80fromsyscolumnswheres
8、tatus&0x80=0x80if@identisnotnullprint'SETIDENTITYJNSERT'+@TableName+'ON*?-定義游標(biāo),循環(huán)取數(shù)據(jù)并生成Insert語(yǔ)句declaresyscolumns_cursorcursorforSQLServer社區(qū)中偶爾id=@objectidandselectc.name,c.xtypefromsyscolumnscwherec.id=@objectidorderbyc.colid-打開(kāi)游標(biāo)opensy