Mam nadzieję, że ktoś może skierować mnie w tym kierunku. Oto moje dotychczasowe działania.
SELECT * FROM sys.identity_columns
jest widokiem systemu, który daje „ostatnią wartość”, ale definicja tego widoku używa funkcji wewnętrznej IdentityProperty(colName, 'LastValue')
- więc to ślepy zaułek (nie wyciąganie go z tabeli systemowej).
Wszędzie (szukałem) w Internecie sugeruje użycie DBCC IDENT_...
poleceń, aby odkryć wartość, ale to wciąż pozostawia mnie w ciemności co do tego, gdzie jest faktycznie przechowywana.
Doszedłem więc do przeszukiwania poszczególnych stron za pomocą DBCC PAGE(TestDB,1,1325,3)
mojej wiązki testowej db i użycia RESEED
polecenia do ponownego wyboru między wartościami 10 i 12.
W ten sposób, zauważyłem wartości hex na IAM: Header
, IAM: Single Page Allocations
i IAM: Extent Alloc Status Slot 1
wszystko się zmieniło. (I zdali sobie sprawę, że i tak zmieniają się okresowo wraz z wartością bUse1, która sama również zmienia się stopniowo).
Więc kolejny ślepy zaułek i nie mam pomysłów. Gdzie jeszcze mogę szukać?
Korzystam z programu SQL Server 2014. Mam nienasycone pragnienie wewnętrznej wiedzy i jeszcze nie spotkałem się z czymś tak nieuchwytnym jak to. Przyciągnęło to moją uwagę, ponieważ teoretycznie (wartość bezwzględna) jest gdzieś przechowywana i powinna (prawdopodobnie) być zlokalizowana. W mojej próbie odkrycia lokalizacji wewnętrznie przechowywanych danych / metadanych ta szczególna wartość wydaje mi się szczególnie nieuchwytna. Zgaduję / mam nadzieję, że ktoś przyjdzie i powie mi, że możesz to załatwić, DBCC PAGE
ale szukałem w złym miejscu.
źródło