Spero che qualcuno possa indicarmi la giusta direzione su questo. Ecco i miei allenamenti finora.
SELECT * FROM sys.identity_columns
è una vista di sistema che fornisce "last_value" ma la definizione per quella vista utilizza una funzione interna, IdentityProperty(colName, 'LastValue')
quindi è un vicolo cieco (non estraendolo da una tabella di sistema).
Ovunque (ho guardato) su Internet suggerisce di usare i DBCC IDENT_...
comandi per scoprire il valore, ma questo mi lascia ancora nell'oscurità su dove è effettivamente memorizzato.
Quindi, sono arrivato a cercare le singole pagine con DBCC PAGE(TestDB,1,1325,3)
contro il mio cablaggio di test db e usando il RESEED
comando per ridimensionare tra i valori 10 e 12.
Nel fare questo, ho notato che i valori esadecimali sul IAM: Header
, IAM: Single Page Allocations
e IAM: Extent Alloc Status Slot 1
tutto è cambiato. (E realizzato che cambiano periodicamente comunque insieme al valore bUse1 che cambia anche in modo incrementale da solo).
Quindi un altro vicolo cieco e sono completamente senza idee. Dove altro posso cercare?
Sto eseguendo SQL Server 2014. Ho una sete insaziabile di conoscenza interna e devo ancora imbattermi in qualcosa di così sfuggente. Ha attirato la mia attenzione perché in teoria, (un valore assoluto) è memorizzato da qualche parte e dovrebbe (probabilmente) essere localizzabile. Nella mia ricerca di scoprire posizioni di dati / metadati memorizzati internamente, questo particolare valore mi sembra particolarmente sfuggente. Sto indovinando / sperando che qualcuno venga e me lo dica, puoi farcela DBCC PAGE
ma stavo guardando nel posto sbagliato.