Criação de objetos MS Sql Server / Script Alter
-
19-09-2019 - |
Pergunta
No SQL Server quando você seleciona para modificar um SP ou UDF ele carrega os objetos consulta alter em uma janela de consulta. São estas consultas acessível em uma tabela do sistema para que eu possa armazenar as declarações alter em algum lugar? Parece que syscomments tem alguns objetos, mas não todos eles.
Graças
Solução
Não use syscomments , porque syscomments.text
é nvarchar(4000)
e como resultado irá truncar qualquer coisa que for mais longo.
Use sys.sql_modules
porque definition
é nvarchar(max)
, não vai truncar código longo.
usar isso para ver o texto de um determinado procedimento, visão ou função:
SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')
Use isto para obter o nome, o tipo e texto de qualquer procedimento, visão ou função:
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')
Outras dicas
Eu não sou inteiramente certo o que está pedindo, mas você pode ver procedimentos armazenados com a seguinte consulta:
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
Se você estiver após diferentes tipos de objetos, dê uma olhada sys. sysobjects para os diferentes tipos.