sp_helptext @objname = 视图/存储过程

解决方案 »

  1.   

    获取存储过程的创建语句: sp_HelpText '储过程名'
      

  2.   

    exec sp_helptext [ @objname = ] 'name'
      

  3.   

    sp_helptext
    显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。语法
    sp_helptext [ @objname = ] 'name'参数
    [@objname =] 'name'对象的名称,将显示该对象的定义信息。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),没有默认值。 返回代码值
    0(成功)或 1(失败)结果集
    列名 数据类型 描述 
    Text nvarchar(255) 对象定义文本 
    注释
    sp_helptext 在多个行中显示用来创建对象的文本,其中每行有 Transact-SQL 定义的 255 个字符。这些定义只驻留在当前数据库的 syscomments 表的文本中。权限
    执行权限默认授予 public 角色。示例
    下面的示例显示 employee_insupd 触发器的文本,该触发器在数据库 pubs 中。USE pubs
    EXEC sp_helptext 'employee_insupd'
      

  4.   

    sp_helptext 视图/存储过程
    sp_helptext @objname='视图/存储过程'
    exec sp_helptext 视图/存储过程
    exec sp_helptext @objname='视图/存储过程'
    以上均可以,其实他们是一种方法的不同写法,我试过均可。其他的可以参考以下sql的帮助文档,很爽的。ok!
      

  5.   

    sp_helptext 获得存储过程/视图/自定义函数的文本更详细的还是用生成SQL脚本比较好.
      

  6.   

    当然首选还是我的sp_script,因为sp_helptext不能得到表的内容,SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GOALTER  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 intdeclare @table int, @tables intEXEC @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
    ENDEXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'byserver',
        'sa', ''IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    ENDEXEC @hr = sp_OAGetProperty @object, 'Databases', @objectdatabase outputIF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @objectdatabase, @src OUT, @desc OUT 
       SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
        RETURN
    ENDEXEC @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
      ENDExec @hr = sp_OAMethod @table, 'Script', @str output
      IF @hr <> 0
      BEGIN
        EXEC sp_OAGetErrorInfo @table
         RETURN
      ENDprint @str
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  7.   

    楼上的说得很好
    其实,也没有必要做得那么麻烦,完全可以在企业管理器下,右击你的数据库,然后选择所有任务下的生成sql脚本,然后选择你要查看的表、视图、存储过程、用户函数、用户数据类型等,点击确定或预览就可以看到源代码了