2009-04-08 5 views
2

Je suis juste tombé sur la vue système sys.sql_modules aujourd'hui. Qu'est-ce qu'un module par rapport à un objet DB? La vue renvoie, le plus souvent, une colonne contenant le texte de la définition, tel que renvoyé par sys.syscomments.Qu'est-ce qu'un module SQL Server?

Répondre

4

Ce sont les blocs d'instructions T-SQL qui composent une procédure stockée, une fonction stockée, un déclencheur ou une définition de vue.

De "Livres en ligne" dans la section "CREATE PROCEDURE":

Obtenir des informations sur stockées Procédures Pour afficher la définition d'une procédure stockée Transact-SQL, utiliser la vue catalogue sys.sql_modules dans la base de données dans laquelle la procédure existe.

Dans sys.sql_modules, vous trouverez le code T-SQL réel.

Marc

1

Les modules A sont des fonctions, des procédures, des files d'attente et des déclencheurs. Ces modules appellent des objets. Voilà ce que je compris de cet article qui décrit « EXECUTE AS »:

EXECUTE AS

+0

C'est cette page qui m'a amené à poser ma question en premier lieu. Il me dit qu'il existe différents modules dans une base de données. J'ai toujours su qu'il y a divers objets dans une DB. D'où 'modules'? – ProfK

+0

J'ai redéfini la réponse juste pour le rendre clair. – IEnumerator

3

Un module, en parler SQL-Server est un objet autonome qui contient des lots sql, comme une vue, fonction table, procédure stockée, déclencheur ou une fonction scalaire. Un objet SQL est un terme plus général englobant certains qui contiennent des expressions SQL, telles que les contraintes check ou default. Un module a été appelé «routine» avant SQL Server 2005, mais je pense que les deux termes sont utilisés de manière interchangeable.

Le script de génération de table n'est pas stocké dans SQL Server en raison de la facilité avec laquelle les composants d'une table peuvent être modifiés séparément. Par conséquent, il est traité comme un objet mais pas un module.
Les objets types qui ne sont pas considérés comme des modules sont les tables système, les contraintes par défaut, les contraintes de clé étrangère, les files d'attente de service, les contraintes de vérification, les tables utilisateur, les contraintes internes et les contraintes uniques.

Les colonnes ne sont pas considérées comme des objets. Les index ne sont pas non plus.

Oui, tout est plus complexe qu'on pourrait le penser.