Creación de objetos de servidor MS SQL / script Alter
-
19-09-2019 - |
Pregunta
En SQL Server cuando se selecciona para modificar un SP o UDF se carga los objetos alteran consulta en una ventana de consulta. Son estas consultas accesibles en una tabla del sistema para que pueda almacenar las instrucciones ALTER en alguna parte? Parece que syscomments tiene algunos objetos, pero no todos de ellos.
Gracias
Solución
No utilice syscomments , porque es syscomments.text
nvarchar(4000)
y como resultado truncará cualquier cosa que sea más largo.
Uso sys.sql_modules
porque definition
es nvarchar(max)
, no va a truncar código largo.
usar esto para ver el texto de un procedimiento determinado, una vista o función:
SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')
Utilice esta opción para obtener el nombre, tipo y texto de cualquier procedimiento, vista o función:
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')
Otros consejos
No estoy del todo seguro de lo que estás pidiendo, pero se puede ver procedimientos almacenados con la siguiente 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
Si estás después de diferentes tipos de objetos, echar un vistazo a sys. sysobjects para los diferentes tipos.