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

Er der en måde at hente visningsdefinitionen fra en SQL Server ved hjælp af almindelig ADO?

Hvilken version af SQL Server?

For SQL Server 2005 og nyere kan du hente SQL-scriptet, der blev brugt til at oprette visningen på denne måde:

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'

Dette returnerer en enkelt række, der indeholder scriptet, der bruges til at oprette/ændre visningen.

Andre kolonner i tabellen fortæller om muligheder på plads på det tidspunkt, hvor visningen blev kompileret.

Forbehold

  • Hvis visningen sidst blev ændret med ALTER VIEW, vil scriptet være en ALTER VIEW-sætning i stedet for en CREATE VIEW-sætning.

  • Scriptet afspejler navnet, som det blev oprettet. Den eneste gang, den bliver opdateret, er, hvis du udfører ALTER VIEW eller dropper og genskaber visningen med CREATE VIEW. Hvis visningen er blevet omdøbt (f.eks. via sp_rename ) eller ejerskabet er blevet overført til et andet skema, vil det script, du får tilbage, afspejle den originale CREATE/ALTER VIEW-sætning:det vil ikke afspejle objektets nuværende navn.

  • Nogle værktøjer afkorter outputtet. For eksempel afkorter MS-SQL-kommandolinjeværktøjet sqlcmd.exe dataene med 255 tegn. Du kan sende parameteren -y N for at få resultatet med N tegn.



  1. Hvordan viser man Oracle-skemastørrelse med SQL-forespørgsel?

  2. Hvad er forskellene mellem INSERT og UPDATE i MySQL?

  3. 2 måder at returnere rækker, der indeholder alfanumeriske tegn i MySQL

  4. DatabaseError:nuværende transaktion er afbrudt, kommandoer ignoreret indtil slutningen af ​​transaktionsblok?