Espero que alguien pueda señalarme en la dirección correcta en este caso. Aquí está mi trabajo hasta ahora.
SELECT * FROM sys.identity_columns
es una vista del sistema que proporciona "last_value", pero la definición de esa vista usa una función interna IdentityProperty(colName, 'LastValue')
, por lo que es un callejón sin salida (no extraerlo de una tabla del sistema allí).
En todas partes (he buscado) en Internet sugiere usar DBCC IDENT_...
comandos para descubrir el valor, pero eso todavía me deja en la oscuridad en cuanto a dónde está realmente almacenado.
Entonces, llegué a buscar en las páginas individuales con DBCC PAGE(TestDB,1,1325,3)
mi arnés de prueba db y utilicé el RESEED
comando para reiniciar entre los valores 10 y 12.
Al hacer esto, noté los valores hexadecimales en el IAM: Header
, IAM: Single Page Allocations
y IAM: Extent Alloc Status Slot 1
todo cambió. (Y se dio cuenta de que cambian periódicamente de todos modos junto con el valor bUse1 que también cambia gradualmente por sí mismo).
Así que otro callejón sin salida y estoy sin ideas ¿Dónde más puedo buscar?
Estoy ejecutando SQL Server 2014. Tengo una sed insaciable por el conocimiento interno y aún no he encontrado nada tan difícil como esto. Me llamó la atención porque, en teoría, (un valor absoluto) se almacena en algún lugar y debería (posiblemente) ser localizable. En mi búsqueda para descubrir ubicaciones de datos / metadatos almacenados internamente, este valor particular me parece particularmente difícil de alcanzar. Supongo / espero que alguien venga y me diga, puedes hacerlo, DBCC PAGE
pero estaba buscando en el lugar equivocado.
fuente