MS Sql Server 对象创建/更改脚本
Posted
技术标签:
【中文标题】MS Sql Server 对象创建/更改脚本【英文标题】:MS Sql Server Object Creation / Alter Script 【发布时间】:2010-03-12 22:33:47 【问题描述】:在 Sql Server 中,当您选择修改 SP 或 UDF 时,它会在查询窗口中加载对象更改查询。这些查询是否可以在系统表中访问,以便我可以将更改语句存储在某处?看起来 syscmets 有一些对象,但不是全部。
谢谢
【问题讨论】:
【参考方案1】:不要使用 syscmets,因为 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】:我不完全确定您在问什么,但您可以通过以下查询查看存储过程:
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 以了解不同类型。
【讨论】:
以上是关于MS Sql Server 对象创建/更改脚本的主要内容,如果未能解决你的问题,请参考以下文章
寻找为整个 SQL Server 数据库创建导出脚本的工具 [关闭]