La plupart du temps, nous devons rechercher des objets en utilisant métadonnées (données sur les données) pour obtenir des informations sur SQL Server. Par exemple, nous utilisons une requête pour rechercher la version de SQL Server exécutée sur une machine particulière. Les métadonnées nous aident à trouver des paramètres et des configurations pour divers objets de notre base de données.
Dans cet exemple, il faut trouver à quelle date la table 'Client' a été créé. Nous devons interroger les métadonnées SQL Server pour trouver cette date.
SELECT create_date FROM sys.objects WHERE name = 'Client';
sys.objects est une table créée par SQL Server qui agit comme une métadonnée.
Lorsque nous avons installé SQL Server pour la première fois, certaines tables, procédures et divers objets étaient automatiquement créés pour contenir les métadonnées considérées comme telles. "Expédié" éléments fournis par le fournisseur de logiciels Microsoft avec SQL Server.
Lorsque nous créons une nouvelle base de données sous SQL Server, des objets contenant des métadonnées sont automatiquement créés.
Propriété is_ms_shipped dans SQL Server
le is_ms_shipped La propriété de SQL Server indique quels objets ont été créés (fournis) par Microsoft lors de l’installation de SQL Server et quels objets ont été créés par les utilisateurs.
SELECT nom, object_id, is_ms_shipped FROM sys.objects;
is_ms_shipped = 1 (indique que cet objet a été livré ou créé par Microsoft) is_ms_shipped = 0 (indique que cet objet a été créé par un utilisateur)
En utilisant la requête ci-dessus, nous voyons divers objets créés sous une base de données. La colonne «is_ms_shipped» indique si un objet a été créé par un utilisateur ou fourni par Microsoft.
Nous savons maintenant que nous avons créé la table STUDENTS, la liste des colonnes contient le nom de l'objet, le object_id (unique pour chaque objet créé dans le serveur SQL) et la colonne is_ms_shipped.
En utilisant le ObjectProperty () fonction créée par le système, nous pouvons savoir si un objet particulier a été fourni par Microsoft ou créé par un utilisateur.
--2105058535 is object_id pour les étudiants de la table, sélectionnez CASE WHEN, propriétéOBJET (2105058535, 'IsMSShipped') = 0 THEN 'Créé par l'utilisateur' ELSE '. Expédié par Microsoft' END AS 'IsMsShipped'; --2089058478 est object_id pour la table syscommittab SELECT CASE WHEN OBJECT, propriété (2089058478, 'IsMSShipped') = 0 THEN 'Créé par l'utilisateur' ELSE 'Expédié par Microsoft' END AS 'IsMsShipped';
Si nous souhaitons dresser une liste d'objets créés par Microsoft ou créés par des utilisateurs à des fins d'audit, nous pouvons utiliser la requête ci-dessous.
--is_ms_shipped = 1 indique les objets livrés / créés par Microsoft. SELECT nom, object_id, is_ms_shipped FROM sys.objects WHERE is_ms_shipped = 1; --is_ms_shipped = 0 indique les objets créés par les utilisateurs. SELECT nom, object_id, is_ms_shipped FROM sys.objects WHERE is_ms_shipped = 0;