中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
得到对象脚本
作者:未知 时间:2004-01-17 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

/*
 在查询分析器中调用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
go
create procedure sp_getscript
 @servername varchar(50)      --服务器名
 ,@userid varchar(50)       --用户名,如果为nt验证方式,则为空
 ,@password varchar(50)      --密码
 ,@databasename varchar(50)    --数据库名称
 ,@objectname varchar(250)     --对象名
 ,@re varchar(8000) output     --返回脚本
as
declare @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
end
else
 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

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有