För det mesta behöver vi söka efter objekt med metadata (data om data) för att få information om SQL Server. Till exempel använder vi en fråga för att hitta vilken version av SQL-servern som körs på en viss maskin. Metadata hjälper oss att hitta inställningar och konfigurationer för olika objekt i vår databas.
I det här exemplet måste vi hitta på vilket datum tabellen 'Kund' skapades. Vi måste fråga SQL Server-metadata för att hitta det här datumet.
VÄLJ create_date FRÅN sys.objects WHERE namn = 'Kund';
sys.objects är en tabell som skapades av SQL Server som fungerar som metadata.
När vi installerade SQL Server för första gången skapade den automatiskt vissa tabeller, procedurer och olika objekt för att hålla metadata som anses vara ”Levereras” objekt av programvaruleverantören Microsoft med SQL-server.
När vi skapar en ny databas under SQL-servern skapas det automatiskt vissa objekt för att hålla metadata.
is_ms_shipped Egenskap i SQL Server
De is_ms_shipped Egenskapen i SQL-servern visar vilka objekt som skapades (sänds) av Microsoft när vi installerade SQL Server och vilka objekt som skapades av användarna.
SELECT namn, object_id, is_ms_shipped Från sys.objects;
is_ms_shipped = 1 (indikerar att detta objekt har skickats eller skapats av Microsoft) is_ms_shipped = 0 (indikerar att detta objekt har skapats av en användare)
Med hjälp av frågan ovan ser vi olika objekt skapade under en databas. Kolumnen "is_ms_shipped" anger om ett objekt skapades av en användare eller skickades av Microsoft.
Nu vet vi att vi har skapat STUDENTER-tabellen, kolumnlistan visar objektnamnet, object_id (vilket är unikt för varje skapat objekt i SQL-servern) och kolumnen is_ms_shipped.
Använda ObjectProperty () system skapad funktion kan vi ta reda på om ett visst objekt skickades av Microsoft eller skapades av en användare.
--2105058535 är object_id för tabellstudenter välj CASE WHEN OBJECTproperty (2105058535, 'IsMSShipped') = 0 THEN 'Skapad av användare' ELSE 'Skickad av Microsoft' END AS 'IsMsShipped'; --2089058478 är object_id för syscommittab-tabellen SELECT CASE när OBJECTproperty (2089058478, 'IsMSShipped') = 0 THEN 'Skapad av användaren' ELSE 'Skickad av Microsoft' END AS 'IsMsShipped';
Om vi vill göra en lista över objekt som skapats av Microsoft eller skapats av användare för revisionsändamål, kan vi använda frågan nedan.
--is_ms_shipped = 1 anger objekt som skickas / skapas av Microsoft. SELECT namn, object_id, is_ms_shipped Från sys.objects WHERE is_ms_shipped = 1; --is_ms_shipped = 0 anger objekt som skapats av användare. SELECT namn, object_id, is_ms_shipped Från sys.objects WHERE is_ms_shipped = 0;