MS Sql Server Создание объекта / Alter Script - PullRequest
1 голос
/ 13 марта 2010

В Sql Server, когда вы выбираете модифицировать SP или UDF, он загружает запрос на изменение объектов в окне запроса.Доступны ли эти запросы в системной таблице, чтобы я мог где-то хранить операторы alter?Похоже, что у syscomments есть некоторые объекты, но не все.

Спасибо

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Не используйте 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')
0 голосов
/ 13 марта 2010

Я не совсем уверен, что вы спрашиваете, но вы можете увидеть хранимые процедуры с помощью следующего запроса:

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 для разных типов.

...