CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

不藏私之一,在查询分析器中取得脚本

楼主qiubolecn(来自差生市)2003-07-04 19:20:39 在 MS-SQL Server / 基础类 提问

经常见大家问到在查询分析器里怎么查看某一表的脚本,但往往回答都有一点不尽人意。  
  因此特将我用的存储过程贴过来。也好和大家共同提高,  
  因为分不多,干脆就不给了最好在MASTER里执行  
   
  SET   QUOTED_IDENTIFIER   ON    
  GO  
  SET   ANSI_NULLS   ON    
  GO  
   
  create   procedure   sp_script  
                  @objectname   varchar(50)  
  as  
  /********************  
      修改日期:2002-09-10  
      修改人:qiubole  
      备注:取得脚本  
  ********************/  
  declare   @databasename   varchar(50)  
   
  set   @databasename   =   DB_NAME(DB_ID())  
   
  declare                 @str   varchar(4000)  
   
   
  DECLARE   @object   int  
  declare   @objectdatabase   int  
  DECLARE   @hr   int  
  DECLARE   @src   varchar(255),   @desc   varchar(255)  
  DECLARE   @DataBaseCount   int,   @Current   int,   @DataBase   int  
   
  declare   @table   int,   @tables   int  
   
  EXEC   @hr   =   sp_OACreate   'SQLDMO.SQLServer',   @object   OUT  
  IF   @hr   <>   0  
  BEGIN  
            EXEC   sp_OAGetErrorInfo   @object,   @src   OUT,   @desc   OUT    
        SELECT   hr=convert(varbinary(4),@hr),   Source=@src,   Description=@desc  
          RETURN  
  END  
   
  EXEC   @hr   =   sp_OAMethod   @object,   'Connect',   NULL,   'byserver',  
          'sa',   ''  
   
  IF   @hr   <>   0  
  BEGIN  
        EXEC   sp_OAGetErrorInfo   @object  
          RETURN  
  END  
   
  EXEC   @hr   =   sp_OAGetProperty   @object,   'Databases',   @objectdatabase   output  
   
  IF   @hr   <>   0  
  BEGIN  
        EXEC   sp_OAGetErrorInfo   @objectdatabase,   @src   OUT,   @desc   OUT    
        SELECT   hr=convert(varbinary(4),@hr),   Source=@src,   Description=@desc  
          RETURN  
  END  
   
   
   
  EXEC   @hr   =   sp_OAGetProperty   @objectdatabase,   'count',   @DataBaseCount   output  
  IF   @hr   <>   0  
  BEGIN  
        EXEC   sp_OAGetErrorInfo   @objectdatabase,   @src   OUT,   @desc   OUT    
        SELECT   hr=convert(varbinary(4),@hr),   Source=@src,   Description=@desc  
          RETURN  
  END  
   
   
  set   @Current   =   1  
  loop1:  
   
      EXEC   @hr   =   sp_OAMethod   @objectdatabase,   'Item',   @Database   output,   @databasename  
   
      IF   @hr   <>   0  
      BEGIN  
          EXEC   sp_OAGetErrorInfo   @objectdatabase  
            RETURN  
      END  
   
   
  EXEC   @hr   =   sp_OAMethod   @Database,   'GetObjectByName',   @table   output,   @objectname  
   
      IF   @hr   <>   0  
      BEGIN  
          EXEC   sp_OAGetErrorInfo   @Database  
            RETURN  
      END  
   
  Exec   @hr   =   sp_OAMethod   @table,   'Script',   @str   output  
      IF   @hr   <>   0  
      BEGIN  
          EXEC   sp_OAGetErrorInfo   @table  
            RETURN  
      END  
   
  print   @str  
   
   
  GO  
  SET   QUOTED_IDENTIFIER   OFF    
  GO  
  SET   ANSI_NULLS   ON    
  GO  
   
   
  问题点数:0、回复次数:8Top

1 楼icevi(按钮工厂)回复于 2003-07-04 19:52:07 得分 0

嗯,也不错。Top

2 楼txlicenhe(马可)回复于 2003-07-17 19:48:47 得分 0

upTop

3 楼DJMPH(冷开水)回复于 2003-07-17 20:00:40 得分 0

不错,不过我习惯了右键生成。Top

4 楼zjcxc(邹建)回复于 2003-07-17 20:27:40 得分 0

不错Top

5 楼ejason(忏悔一生)回复于 2003-07-18 09:18:46 得分 0

执行出错!Top

6 楼dearmyfriend(Dearmyfriend)回复于 2003-07-18 09:52:18 得分 0

麻烦,直接在企业管理器中选中表,复制,然后在查询分析器中粘贴就出来了。Top

7 楼zclxyh(谁说我不在乎)回复于 2003-07-18 09:54:51 得分 0

使用sp_helptext   不是更快,更方便吗?Top

8 楼xlong0913(龙儿)回复于 2003-07-18 10:29:48 得分 0

麻烦Top

相关问题

  • 查询分析器视图脚本分析问题
  • 在查询分析器中如何导出用户表Create table的脚本
  • 现有一sql脚本,在查询分析器中怎样执行?
  • 在查询分析器中能直接执行一个*.sql脚本文件吗?如果编写脚本?
  • 在pb脚本中是否可以像查询分析器一样对sqlserver进行各种操作?
  • sql脚本在批处理文件中执行需要怎么做?不打开查询分析器
  • 请问sql server “sql查询分析器”
  • 查询分析器里的怪现象
  • 让查询分析器显示行号
  • 查询分析器和osql的区别?

关键词

  • hr
  • 分析器
  • 脚本
  • 查询
  • database
  • source
  • objectdatabase
  • oageterrorinfo
  • intdeclare
  • returnendexec

得分解答快速导航

  • 帖主:qiubolecn

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo