Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

C'è un modo per recuperare la definizione della vista da un SQL Server usando ADO semplice?

Quale versione di SQL Server?

Per SQL Server 2005 e versioni successive, puoi ottenere lo script SQL utilizzato per creare la vista in questo modo:

select definition
from sys.objects     o
join sys.sql_modules m on m.object_id = o.object_id
where o.object_id = object_id( 'dbo.MyView')
  and o.type      = 'V'

Questo restituisce una singola riga contenente lo script utilizzato per creare/modificare la vista.

Altre colonne nella tabella parlano delle opzioni in vigore al momento della compilazione della vista.

Avvertenze

  • Se la vista è stata modificata l'ultima volta con ALTER VIEW, lo script sarà un'istruzione ALTER VIEW anziché un'istruzione CREATE VIEW.

  • Lo script riflette il nome così come è stato creato. L'unica volta in cui viene aggiornato è se si esegue ALTER VIEW o si elimina e si ricrea la vista con CREATE VIEW. Se la vista è stata rinominata (ad es. tramite sp_rename ) o la proprietà è stata trasferita a uno schema diverso, lo script restituito rifletterà l'istruzione CREATE/ALTER VIEW originale:non rifletterà il nome corrente degli oggetti.

  • Alcuni strumenti troncano l'output. Ad esempio, lo strumento da riga di comando MS-SQL sqlcmd.exe tronca i dati a 255 caratteri. Puoi passare il parametro -y N per ottenere il risultato con N caratteri.