Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Existe-t-il un moyen de récupérer la définition de la vue à partir d'un serveur SQL à l'aide d'ADO simple ?

Quelle version de SQL Server ?

Pour SQL Server 2005 et versions ultérieures, vous pouvez obtenir le script SQL utilisé pour créer la vue comme ceci :

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'

Cela renvoie une seule ligne contenant le script utilisé pour créer/modifier la vue.

Les autres colonnes du tableau renseignent sur les options en place au moment de la compilation de la vue.

Mises en garde

  • Si la vue a été modifiée pour la dernière fois avec ALTER VIEW, le script sera une instruction ALTER VIEW plutôt qu'une instruction CREATE VIEW.

  • Le script reflète le nom tel qu'il a été créé. La seule fois où il est mis à jour, c'est si vous exécutez ALTER VIEW, ou supprimez et recréez la vue avec CREATE VIEW. Si la vue a été renommée (par exemple, via sp_rename ) ou la propriété a été transférée vers un schéma différent, le script que vous récupérez reflétera l'instruction CREATE/ALTER VIEW d'origine :il ne reflétera pas le nom actuel de l'objet.

  • Certains outils tronquent la sortie. Par exemple, l'outil de ligne de commande MS-SQL sqlcmd.exe tronque les données à 255 caractères. Vous pouvez passer le paramètre -y N pour obtenir le résultat avec N caractères.