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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top