代码之家  ›  专栏  ›  技术社区  ›  Chris Klepeis

MS SQL Server对象创建/更改脚本

  •  1
  • Chris Klepeis  · 技术社区  · 16 年前

    在SQL Server中,当您选择修改sp或udf时,它将在查询窗口中加载对象alter query。在系统表中是否可以访问这些查询,以便将alter语句存储在某个地方?看起来syscomments有一些对象,但不是所有对象。

    谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   KM.    16 年前

    不使用SysComments ,因为 syscomments.text nvarchar(4000) 结果将截断任何较长的内容。

    使用 sys.sql_modules 因为 definition nvarchar(max) ,它不会截断长代码。

    使用此项查看给定过程、视图或函数的文本:

    SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')
    

    使用此项获取任何过程、视图或函数的名称、类型和文本:

    SELECT DISTINCT
        o.name AS Object_Name,o.type_desc, m.definition
        FROM sys.sql_modules        m 
            INNER JOIN sys.objects  o ON m.object_id=o.object_id
        WHERE m.object_id=object_id('CPT_SP_IRA_ComboBox_IncidentStatus')
    
        2
  •  -1
  •   spender    16 年前

    我不完全确定您在问什么,但是您可以通过以下查询看到存储过程:

    SELECT SO.Type,SO.Name,SC.Text
    FROM sysobjects SO (NOLOCK)
    INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
    AND SO.Type = 'P'
    ORDER BY SO.Name
    

    如果你想要不同的对象类型,看看 sys.sysobjects 对于不同类型。

    推荐文章