sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är syftet med systemtabellens master..spt_values ​​och vad är betydelsen av dess värden?

spt_values Tabellen nämns inte i SQL Server-dokumentationen men den går tillbaka till Sybase-dagarna och det finns extremt minimal dokumentation i Sybase online-dokument som kan sammanfattas i denna kommentar:

För att se hur det används, kör sp_helptext och titta på texten för en av systemprocedurerna som refererar till den.

Med andra ord, läs koden och räkna ut den själv.

Om du rotar runt i de systemlagrade procedurerna och undersöker själva tabelldatan är det ganska tydligt att tabellen används för att översätta koder till läsbara strängar (bland annat). Eller som Sybase-dokumentationen länkad ovan uttrycker det, "att konvertera interna systemvärden [...] till läsbart format"

Tabellen används också ibland i kodavsnitt i MSDN-bloggar - men aldrig i formell dokumentation - vanligtvis som en bekväm källa till en lista med nummer. Men som diskuterats på andra ställen är det en säkrare och mer tillförlitlig lösning att skapa din egen sifferkälla än att använda en odokumenterad systemtabell. Det finns till och med en Connect-begäran om att tillhandahålla en "riktig" dokumenterad nummertabell i själva SQL Server.

Hur som helst, tabellen är helt odokumenterad så det finns inget betydande värde i att veta något om det, åtminstone ur praktisk synvinkel:nästa servicepack eller uppgradering kan förändra det helt. Intellektuell nyfikenhet är något annat såklart :-)



  1. Vad är skillnaden mellan =null och IS NULL?

  2. Hur man aktiverar alla begränsningar för kontroll och främmande nyckel i en databas i SQL Server (T-SQL-exempel)

  3. Android SQLite-fråga där kolumnen inte är null och inte tom

  4. Ställ in en allmän standardprofil för databaspost (SSMS)