sql >> Database >  >> RDS >> Sqlserver

Is er een manier om de weergavedefinitie van een SQL Server op te halen met behulp van gewone ADO?

Welke versie van SQL Server?

Voor SQL Server 2005 en later kunt u het SQL-script dat is gebruikt om de weergave te maken als volgt verkrijgen:

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'

Dit retourneert een enkele rij met het script dat is gebruikt om de weergave te maken/wijzigen.

Andere kolommen in de tabel vertellen over de beschikbare opties op het moment dat de weergave werd samengesteld.

Voorbehoud

  • Als de weergave voor het laatst is gewijzigd met ALTER VIEW, is het script een ALTER VIEW-instructie in plaats van een CREATE VIEW-instructie.

  • Het script weerspiegelt de naam zoals deze is gemaakt. De enige keer dat het wordt bijgewerkt, is als u ALTER VIEW uitvoert, of als u de weergave laat vallen en opnieuw maakt met CREATE VIEW. Als de weergave is hernoemd (bijvoorbeeld via sp_rename ) of eigendom is overgedragen aan een ander schema, zal het script dat u terugkrijgt de originele CREATE/ALTER VIEW-instructie weergeven:het zal niet de huidige naam van het object weergeven.

  • Sommige tools kappen de uitvoer af. Het MS-SQL-opdrachtregelprogramma sqlcmd.exe kapt de gegevens bijvoorbeeld af op 255 tekens. U kunt de parameter -y N . doorgeven om het resultaat te krijgen met N tekens.



  1. TSQL Pivot zonder aggregatiefunctie

  2. Aan de slag met GearHost voor MySQL-databaseontwikkeling

  3. Genereer een datumbereik met SQL

  4. Hoe NIET REGEXP werkt in MySQL