/*
在查詢分析器中呼叫sqldmo生成指令碼--儲存過程
鄒建 2003.07(引用請保留此資訊)--*/
/*--呼叫例項
declare @str varchar(8000)
exec sp_getscript 'zj','','','xzkh_sa','地區資料',@str output
print @str
*/if exists(select 1 from sysobjects where id=object_id('sp_getscript') and objectproperty(id,'isprocedure')=1)
drop procedure sp_getscript
gocreate procedure sp_getscript
@servername varchar(50)--伺服器名
,@userid varchar(50)--使用者名稱,如果為nt驗證方式,則為空
,@password varchar(50)--密碼
,@databasename varchar(50)--資料庫名稱
,@objectname varchar(250)--物件名
,@re varchar(8000) output--返回指令碼
asdeclare @srvid int,@dbsid int--定義伺服器、資料庫集id
declare @dbid int,@tbid int--資料庫、表id
declare @err int,@src varchar(255), @desc varchar(255)--錯誤處理變數
--建立sqldmo物件
exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output
if @err<>0 goto lberr
--連線伺服器
if isnull(@userid,'')='' --如果是 nt驗證方式
begin
exec @err=sp_oasetproperty @srvid,'loginsecure',-1
if @err<>0 goto lberr
exec @err=sp_oamethod @srvid,'connect',null,@servername
endelse
exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password
if @err<>0 goto lberr
--獲取資料庫集
exec @err=sp_oagetproperty @srvid,'databases',@dbsid output
if @err<>0 goto lberr
--獲取要取得指令碼的資料庫id
exec @err=sp_oamethod @dbsid,'item',@dbid output,@databasename
if @err<>0 goto lberr
--獲取要取得指令碼的物件id
exec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectname
if @err<>0 goto lberr
--取得指令碼
exec @err=sp_oamethod @tbid,'script',@re output
if @err<>0 goto lberr
--print @re
return
lberr:
exec sp_oageterrorinfo null, @src out, @desc out
declare @errb varbinary(4)
set @errb=cast(@err as varbinary(4))
exec master..xp_varbintohexstr @errb,@re out
select 錯誤號=@re, 錯誤源=@src, 錯誤描述=@desc
return
go
得到物件指令碼
在查詢分析器中呼叫sqldmo生成指令碼 儲存過程 鄒建2003.07 呼叫例項 declare strvarchar 8000 execsp getscript zj xzkh sa 地區資料 stroutput print str ifexists select1fromsysobjectswh...
得到物件指令碼
在查詢分析器中呼叫sqldmo生成指令碼 儲存過程 鄒建 2003.07 引用請保留此資訊 呼叫例項 declare str varchar 8000 exec sp getscript zj xzkh sa 地區資料 str output print str if exists select 1 ...
得到物件指令碼
在查詢分析器中呼叫sqldmo生成指令碼 儲存過程 鄒建 2003.07 引用請保留此資訊 呼叫例項 declare str varchar 8000 exec sp getscript zj xzkh sa 地區資料 str output print str if exists select 1 ...
得到物件指令碼
在查詢分析器中呼叫sqldmo生成指令碼 儲存過程 鄒建 2003.07 引用請保留此資訊 呼叫例項 declare str varchar 8000 exec sp getscript zj xzkh sa 地區資料 str output print str if exists select 1 ...
得到物件指令碼
在查詢分析器中呼叫sqldmo生成指令碼 儲存過程 鄒建 2003.07 引用請保留此資訊 呼叫例項 declare str varchar 8000 exec sp getscript zj xzkh sa 地區資料 str output print str if exists select 1 ...