sql >> Databasteknik >  >> RDS >> Sqlserver

Finns det något sätt att hämta vydefinitionen från en SQL Server med vanlig ADO?

Vilken version av SQL Server?

För SQL Server 2005 och senare kan du hämta SQL-skriptet som används för att skapa vyn så här:

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'

Detta returnerar en enda rad som innehåller skriptet som används för att skapa/ändra vyn.

Andra kolumner i tabellen berättar om alternativ som fanns på plats när vyn kompilerades.

Varningar

  • Om vyn senast ändrades med ALTER VIEW kommer skriptet att vara en ALTER VIEW-sats snarare än en CREATE VIEW-sats.

  • Skriptet återspeglar namnet som det skapades. Den enda gången den uppdateras är om du kör ALTER VIEW, eller släpper och återskapar vyn med CREATE VIEW. Om vyn har bytt namn (t.ex. via sp_rename ) eller äganderätten har överförts till ett annat schema, kommer skriptet du får tillbaka att återspegla den ursprungliga CREATE/ALTER VIEW-satsen:det kommer inte att återspegla objektets nuvarande namn.

  • Vissa verktyg trunkerar utdata. Till exempel, kommandoradsverktyget MS-SQL sqlcmd.exe trunkerar data till 255 tecken. Du kan skicka parametern -y N för att få resultatet med N tecken.



  1. Så här klusterar du dina ProxySQL-lastbalanserare

  2. NVL2() Funktion i Oracle

  3. Få datum från ett veckonummer i T-SQL

  4. Om kommandot GO i SQL Server