Cet article présente 4 façons d’utiliser T-SQL pour obtenir la définition d’une vue dans SQL Server.

la définition de La vue est l’instruction T-SQL utilisée pour créer la vue.

exemple 1 – le système.Sql_modules System Catalog View

sys.sql_modules system catalog view renvoie une ligne pour chaque objet qui est un module défini en langage SQL dans SQL Server.,

en d’autres termes, vous pouvez utiliser cette vue pour renvoyer des informations sur des objets de différents types, y compris des fonctions, des procédures stockées et, bien sûr, des vues.

l’une des colonnes renvoyées avec cette vue s’appelle definition. Comme son nom l’indique, cela renvoie la définition de l’objet.

SELECT definitionFROM sys.sql_modulesWHERE object_id = object_id('Website.Customers');

résultat:

j’ai utilisé une interface de ligne de commande (CLI) avec cet exemple, donc le résultat est bien formaté.,

Si vous utilisez une interface graphique (telle que SSMS ou Azure Data Studio) pour renvoyer les résultats dans une grille, la définition sera probablement renvoyée en une longue ligne dans une seule cellule. Dans de tels cas, vous devrez faire un travail supplémentaire si vous voulez qu’il soit affiché dans un format plus lisible. Vous pouvez également utiliser la méthode sp_helptext ci-dessous.

exemple 2 – la procédure stockée système sp_helptext

Une autre méthode pour renvoyer la définition d’une vue consiste à utiliser la procédure stockée systèmesp_helptext., En plus de renvoyer la définition d’une vue, il peut également renvoyer la définition d’une règle définie par l’utilisateur, d’une procédure stockée T-SQL non chiffrée, d’une fonction Transact-SQL définie par l’utilisateur, d’un déclencheur, d’une colonne calculée, d’une contrainte CHECK ou d’un objet système tel

comme mentionné dans l’exemple précédent, cette procédure stockée affiche la définition de la vue sur plusieurs lignes. Chaque ligne contient 255 caractères de la définition T-SQL.,

exemple:

EXEC sp_helptext 'Website.Customers';

Voici le résultat que j’obtiens lorsque j’utilise une interface graphique (Azure Data Studio):

Et voici ce que j’obtiens en utilisant mon interface de ligne de commande:

Cette fois, les résultats sont meilleurs lorsque

exemple 3 – la fonction OBJECT_DEFINITION ()

Une autre façon de renvoyer la définition d’une vue consiste à utiliser la fonctionOBJECT_DEFINITION(). Comme avec les méthodes précédentes, cette méthode peut également renvoyer la définition d’autres types d’objets.,

Voici un exemple d’utilisation de cette fonction:

SELECT OBJECT_DEFINITION( OBJECT_ID('Website.Customers') ) AS ;

résultat:

cette fois, il est plus facile à lire dans ma CLI que dans ma grille GUI.

exemple 4 – la vue de schéma D’Informations système VIEWS

laVIEWS la vue de schéma d’informations système VIEWS peut également renvoyer la définition d’une vue. Une différence entre cette méthode et les précédentes est que, la VIEWS information schema view est limitée aux seules vues (comme son nom l’indique).

il renvoie un tas de colonnes, dont l’une est la définition de la vue., Par conséquent, nous pouvons nommer cette colonne pour renvoyer uniquement la définition:

SELECT VIEW_DEFINITIONFROM INFORMATION_SCHEMA.VIEWSWHERE TABLE_NAME = 'Customers';

résultat:

notez que la colonne VIEW_DEFINITION dans cette vue système a une longueur maximale de nvarchar(4000). Pour les définitions de vue plus grandes que celle-ci, vous pouvez utiliser la fonction OBJECT_DEFINITION() dans l’exemple précédent.

la valeur de retour de la fonction OBJECT_DEFINITION()est nvarchar(max), elle n’a donc pas la limitation de caractères de la colonne VIEW_DEFINITION (qui, comme mentionné, est nvarchar(4000)).