Сценарий создания объекта MS Sql Server / Alter
-
19-09-2019 - |
Вопрос
В Sql Server, когда вы выбираете изменение SP или UDF, он загружает objects alter query в окне запроса.Доступны ли эти запросы в системной таблице, чтобы я мог где-нибудь сохранить инструкции alter?Похоже, что в 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')
Другие советы
Я не совсем уверен, о чем вы спрашиваете, но вы можете увидеть хранимые процедуры со следующим запросом:
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.системные объекты для разных типов.