Creazione di un oggetto MS SQL server / Alter Script
-
19-09-2019 - |
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
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.