日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

在SQL Server 中使用SQLDMO

瀏覽:282日期:2023-10-29 12:39:35

曾幾何時(shí),伙伴們?yōu)閿?shù)據(jù)庫(kù)的升級(jí)傷透了腦筋.往往程序的升級(jí)趕不上數(shù)據(jù)庫(kù)的升級(jí)(版本控制的好,這也許不是什么問題,但對(duì)于很大一部分中國(guó)公司來說這是無法避免的).而有些n久以前的數(shù)據(jù)庫(kù)要使用新程序的時(shí)候,數(shù)據(jù)庫(kù)的升級(jí)簡(jiǎn)直就是無從下手.所以對(duì)比數(shù)據(jù)庫(kù)升級(jí)的緊要性就逐漸的凸現(xiàn)出來.對(duì)于表和字段的升級(jí)按道理來說是不難的,通過sysobjects與syscolumns的比較很容易的可以找到不同之處,然后增加沒有的對(duì)象即可.而對(duì)于視圖和存儲(chǔ)過程等非表對(duì)象的更新就有些為難了(當(dāng)然視圖和存儲(chǔ)過程如果用手工的辦法是很簡(jiǎn)單的).一個(gè)在于如何生成對(duì)象腳本,另一個(gè)在于如何執(zhí)行.大家都知道syscomments表中藏有此類對(duì)象的腳本,人們肯定會(huì)優(yōu)先考慮開采這個(gè)寶庫(kù).當(dāng)站在字符型變量最大只能存儲(chǔ)8000個(gè)字符時(shí),這簡(jiǎn)直就是一個(gè)不可逾越的障礙.人們又想從導(dǎo)出文本腳本然后執(zhí)行這個(gè)思路著手時(shí),又發(fā)現(xiàn)從字段中取出的腳本有個(gè)天然的缺陷:換行問題.(最后發(fā)現(xiàn),這個(gè)問題也是可以解決的).萬般無奈下人們把渴望的目光集中到了SQLDMO上,她的身上總散發(fā)著無所不能的光芒.

當(dāng)Transfer對(duì)象的美妙身材展現(xiàn)在人們眼前的時(shí)候,大家都對(duì)她的美麗所折服——這不正是我們所尋找的嗎?她的動(dòng)人之處就在于可以把一個(gè)數(shù)據(jù)庫(kù)的對(duì)象腳本保存在內(nèi)存中,然后連接到另一個(gè)數(shù)據(jù)庫(kù)上執(zhí)行.太棒了!現(xiàn)在我們來看看她的輪廓吧:

重要屬性:

CopyAllDefaults Boolean;;所有默認(rèn)值

CopyAllObjects; Boolean;;所有對(duì)象

CopyAllRules;;Boolean;;所有規(guī)則

CopyAllStoredProceduresBoolean;所有存儲(chǔ)過程

CopyAllTables;Boolean;;所有表

CopyAllTriggers Boolean;;所有觸發(fā)器

CopyAllUserDefinedDatatypes;;;Boolean;;;;所有用戶自定義類型

CopyAllViews;;Boolean;;所有視圖

CopyDataBoolean;;所有數(shù)據(jù)

DestDatabase;String;;;;目標(biāo)對(duì)象數(shù)據(jù)庫(kù)

DestLogin; String;;;;目標(biāo)數(shù)據(jù)庫(kù)登陸用戶名

DestPassword;;String;;;;目標(biāo)數(shù)據(jù)庫(kù)登陸密碼

DestServer String;;;;目標(biāo)服務(wù)器

DestUseTrustedConnection; Boolean; 用戶信任連接

DropDestObjectsFirst; Boolean;;是否先刪除目標(biāo)對(duì)象

IncludeDependenciesBoolean;;是否包含依靠對(duì)象

ScriptType; Boolean;;腳本類型

重要方法:

AddObject增加對(duì)象

AddObjectByName;通過對(duì)象名稱增加對(duì)象

好了,大家應(yīng)該對(duì)這個(gè)對(duì)象略有些了解了.對(duì)SQLDMO熟悉的人也許一下子就可以從中得到靈感,而初學(xué)者在這里恐怕還是一頭霧水.不過不用著急,具體用法我們會(huì)慢慢道來:

CREATE PROCEDURE; P_UDB --以源數(shù)據(jù)庫(kù)為模板升級(jí)目標(biāo)數(shù)據(jù)庫(kù)

(; @Source_DB; sysname;;--原數(shù)據(jù)庫(kù)

,@Des_DB;;sysname;;--目標(biāo)數(shù)據(jù)庫(kù)

,@UserNamesysname;;--用戶名

,@psw;;;;;sysname;;--密碼

)

AS

set nocount on

--/*; 局部變量聲明

declare; @ObjName;;;sysname

,@SrvID;int;;--服務(wù)器ID

,@DBsId;int;;--數(shù)據(jù)庫(kù)集ID

,@transferID;;;int;;--傳輸ID

,@SDBId;int;;--源數(shù)據(jù)庫(kù)ID

,@DDBID;int;;--目標(biāo)數(shù)據(jù)庫(kù)ID

,@SViewListID;;int;;--源數(shù)據(jù)庫(kù)視圖列表;

,@DViewListID;;int;;--目標(biāo)數(shù)據(jù)庫(kù)視圖列表;

,@str;;;Nvarhar(4000)

,@name;;sysname

,@hr;;;;int;--執(zhí)行語句返回值

,@Errorint;;;;--錯(cuò)誤返回值(999:存儲(chǔ)過程或觸發(fā)器錯(cuò)誤;9999:視圖錯(cuò)誤)

--*/;;

--/*創(chuàng)建sqldmo對(duì)象; 前面我們已經(jīng)說過SQLDMO是個(gè)com,在SQL Server中使用OLE --自動(dòng)化對(duì)象需要用到sp_OACreate等一系列的存儲(chǔ)過程,讀者如果有不明白的可以自--己查閱相關(guān)資料

exec @hr=sp_oacreate 'SQLDMO.sqlserver',@SrvID output

if @hr<>0

begin

set @Error=1

goto PEnd

end

--*/

--/*連接服務(wù)器

exec @hr=sp_oamethod @SrvID,'connect',null,@@ServerName,@UserName,@psw

if @hr<>0

begin

set @Error=2

goto PEnd

end

--*/

--/*取數(shù)據(jù)庫(kù)集

exec @hr=sp_oagetproperty @SrvID,'databases',@DBsId output

--*/

--/*選擇源數(shù)據(jù)庫(kù);

exec @hr=sp_oamethod @DBsId,'item',@SDBId output,@Source_DB

if @hr<>0

begin

set @Error=3

goto PEnd

end

--*/

--/*選擇目標(biāo)數(shù)據(jù)庫(kù);

exec @hr=sp_oamethod @DBsId,'item',@DDBId output,@Des_DB

if @hr<>0

begin

set @Error=4

goto PEnd

end

--*/

/*Tansfer屬性設(shè)置(生成三大對(duì)象)

exec @hr=sp_oacreate 'SQLDMO.Transfer',@transferID output

exec @hr=sp_oasetproperty@transferID,'DestServer',@@ServerName

exec @hr=sp_oasetproperty@transferID,'DestLogin',@UserName

exec @hr=sp_oasetproperty@transferID,'DestPassword ',@psw

exec @hr=sp_oasetproperty@transferID,'DestDatabase',@des_DB

exec @hr=sp_oasetproperty@transferID,'DropDestObjectsFirst ',1

exec @hr=sp_oasetproperty@transferID,'CopyAllStoredProcedures ',1

exec @hr=sp_oasetproperty@transferID,'CopyAllTriggers',1

exec @hr=sp_oasetproperty@transferID,'CopyAllViews',1

--exec @hr=sp_oasetproperty@transferID,'ScriptType ',1 這里大家可以試試這個(gè)屬性

exec @hr=sp_oamethod; @DDBId,'Transfer ',null,@transferID

exec sp_OADestroy @TransferID;

if @hr<>0

begin

set @Error=10

goto PEnd

end

*/

PEnd:

exec @hr = sp_OAMethod @SrvID, 'DisConnect';

exec sp_OADestroy @SrvID;

print (@Error)

Return (@Error)

GO

上邊的存儲(chǔ)過程只要是介紹方法的實(shí)現(xiàn),而具體的功能比如表及字段的比較生成這里就省略了.

其實(shí)有一個(gè)大家最后也沒能解決好的問題就是對(duì)象依賴的問題.許多對(duì)象比如視圖里嵌視圖,這時(shí)生成與執(zhí)行需要有順序的.雖然有算法但有缺陷.希望讀者能可以提供好的算法.

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
97久久超碰| 男女男精品网站| 国产另类在线| 国产色噜噜噜91在线精品| 国产精品亚洲欧美日韩一区在线| 国产精品香蕉| 中文一区一区三区高中清不卡免费| 亚洲精品**中文毛片| 国内精品福利| 日本一区二区三区视频在线看| 蜜桃久久久久久久| 日本不卡视频一二三区| 日韩av黄色在线| 久久伊人国产| 久久精品不卡| 亚洲精品观看| 国产成人在线中文字幕| 欧美一区二区三区激情视频| 日韩精品一级中文字幕精品视频免费观看| 日韩高清不卡在线| 日韩欧美另类一区二区| 美女91精品| 国产精品啊啊啊| 久久久夜精品| 日韩不卡一区二区三区| 免费观看亚洲| 亚洲一区二区三区免费在线观看 | 亚洲女同中文字幕| 日韩区欧美区| 91精品韩国| 日韩欧美三区| 欧美13videosex性极品| 亚洲最大av| 日韩精品专区| 国产日韩一区二区三区在线播放| 久久精品亚洲欧美日韩精品中文字幕| 视频一区免费在线观看| 国产一区二区三区日韩精品| 免费看的黄色欧美网站| 久久久久久亚洲精品美女| 国产一区导航| 精品99在线| 亚洲精品激情| 午夜久久福利| 色婷婷亚洲mv天堂mv在影片| 日韩在线黄色| 国户精品久久久久久久久久久不卡| 国产欧美一区二区色老头| 午夜电影亚洲| 成人一区而且| 欧美日韩夜夜| 亚洲黄色影院| 蜜臀国产一区| 嫩草伊人久久精品少妇av杨幂| av不卡免费看| 午夜精品久久久久久久久久蜜桃| 亚洲精品伊人| 国产精品美女| 日韩在线短视频| 国产日韩免费| 亚洲开心激情| 午夜日本精品| 日韩网站中文字幕| 国产一区二区三区不卡av| 91精品国产自产观看在线| 一区在线观看| 欧美成人精品三级网站| 精品视频一区二区三区四区五区| 日韩精品欧美精品| 蜜桃久久久久久| 欧美在线综合| 激情久久久久久久| 久久婷婷一区| 成人精品天堂一区二区三区| 日韩av在线中文字幕| 久久伊人久久| 精品视频在线你懂得| 国产乱人伦精品一区| 日本aⅴ免费视频一区二区三区| 香蕉视频成人在线观看| 免费毛片在线不卡| 黄毛片在线观看| 精品香蕉视频| 成人午夜网址| 日韩免费在线| 在线手机中文字幕| 国产精品国产三级国产在线观看| 国精品产品一区| 成人精品国产亚洲| 日韩国产在线| 日韩成人综合| 国精品一区二区| 在线一区免费| 麻豆久久精品| 亚洲精品美女91| 日本强好片久久久久久aaa| 深夜日韩欧美| 国产一精品一av一免费爽爽| 国产精品久久久久久模特| 国产精品久久久久久模特| 美女久久久久久 | 亚洲香蕉久久| 日本va欧美va精品| 国产精品综合色区在线观看| 国产精品亚洲综合色区韩国| 国产精品天堂蜜av在线播放| 国产精品tv| 亚洲国产福利| 精品一区免费| 中文字幕一区二区三区四区久久| 日韩精品a在线观看91| 国产午夜久久av| 精品日韩一区| 亚洲一级二级| 日韩欧美在线精品| 国内精品伊人| 亚洲国产成人精品女人| 中文一区一区三区免费在线观 | 亚洲精品国模| 国产精品自在| 蜜桃视频在线网站| 亚洲女人av| 国产精品激情| 美女网站视频一区| 久热精品在线| 国产精品美女在线观看直播| 激情国产在线| 美女网站久久| 国产精品115| 欧美日韩一二三四| 丝袜美腿亚洲一区二区图片| 欧美亚洲tv| 一区二区三区四区日本视频| 狠狠久久婷婷| 免费一区二区三区在线视频| 国产91久久精品一区二区| 日本亚州欧洲精品不卡| 国产精品99一区二区三| 亚洲欧洲一区二区天堂久久| 欧美日韩亚洲一区在线观看| 久久久国产精品一区二区中文| 美国三级日本三级久久99| 精品视频在线一区二区在线| 婷婷六月综合| 国产精品美女久久久久久不卡| 欧美日韩国产观看视频| 91精品观看| 国产精品久久| 久久午夜影视| 欧美韩日一区| 日韩一区二区三区四区五区| 丁香六月综合| 婷婷视频一区二区三区| 蜜桃视频在线网站| 欧美私人啪啪vps| 激情欧美一区二区三区| 国产欧美一区二区三区国产幕精品 | 日本综合字幕| 日韩不卡在线观看日韩不卡视频| 日韩一区欧美| 91精品国产自产在线丝袜啪| 国产在线成人| 麻豆精品久久| 在线精品国产亚洲| 日本少妇一区| 国产精品99精品一区二区三区∴| 亚洲一区欧美二区| 国产 日韩 欧美一区| 日韩精品亚洲专区| 欧美不卡视频| 精品久久91| 97精品国产99久久久久久免费| 宅男在线一区| 欧美成人精品三级网站| 久久麻豆视频| 国产欧美另类| 日韩午夜视频在线| 蜜桃视频免费观看一区| 9色国产精品| 韩日一区二区三区| 超级白嫩亚洲国产第一| 国产精品对白久久久久粗| 亚洲精品极品| 日韩精品一二三区| 欧美精品激情| 久久视频一区| 国产在线观看www| 国产成人精品一区二区三区免费| 青青草91视频| 亚洲精品无吗| 亚洲精品九九| 亚洲字幕久久| 亚洲午夜免费| 亚洲美女久久| 日本不卡视频一二三区| 天堂va欧美ⅴa亚洲va一国产| 蜜桃一区二区三区在线观看| 国产偷自视频区视频一区二区| 国产综合激情| 999国产精品|