Domanda

In SQL Server quando si sceglie di modificare un SP o UDF Si carica gli oggetti alterano query in una finestra di query. Sono queste query accessibile in una tabella di sistema in modo da poter memorizzare le dichiarazioni alter da qualche parte? Sembra syscomments ha alcuni oggetti, ma non tutti di loro.

Grazie

È stato utile?

Soluzione

Non utilizzare syscomments , perché syscomments.text è nvarchar(4000) e di conseguenza troncherà tutto ciò che è più lungo.

Usa sys.sql_modules perché definition è nvarchar(max), sarà non tronca il codice lungo.

utilizzare questo per visualizzare il testo di una determinata procedura, vista, o la funzione:

SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')

Usare questo per ottenere il nome, il tipo e il testo di qualsiasi procedimento, vista, o la funzione:

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')

Altri suggerimenti

Non sono del tutto sicuro di quello che stai chiedendo, ma si può vedere stored procedure con la seguente query:

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 siete dopo diversi tipi di oggetti, dare un'occhiata a SYS. sysobjects per le diverse tipologie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top