Espero que alguém possa me indicar a direção certa. Aqui está o meu trabalho até agora.
SELECT * FROM sys.identity_columns
é uma visão do sistema que fornece "last_value", mas a definição para essa visão usa uma função interna IdentityProperty(colName, 'LastValue')
- portanto, esse é um beco sem saída (não é retirado da tabela do sistema).
Em todos os lugares (já olhei) na internet, sugerimos o uso de DBCC IDENT_...
comandos para descobrir o valor, mas isso ainda me deixa no escuro sobre onde ele está realmente armazenado.
Portanto, cheguei a pesquisar nas páginas individuais com o DBCC PAGE(TestDB,1,1325,3)
meu equipamento de teste db e usando o RESEED
comando para reenviar entre os valores 10 e 12.
Ao fazer isso, eu observei os valores hexadecimais na IAM: Header
, IAM: Single Page Allocations
e IAM: Extent Alloc Status Slot 1
tudo mudou. (E perceberam que eles mudam periodicamente de qualquer maneira, juntamente com o valor bUse1, que também é incrementado por si só).
Então, outro beco sem saída e estou sem idéias. Onde mais posso pesquisar?
Estou executando o SQL Server 2014. Tenho uma sede insaciável de conhecimento interno e ainda preciso encontrar algo tão esquivo quanto isso. Isso chamou minha atenção porque, em teoria, ele (um valor absoluto) é armazenado em algum lugar e deve (sem dúvida) ser localizável. Na minha busca por descobrir locais de dados / metadados armazenados internamente, esse valor em particular me parece particularmente ilusório. Eu estou supondo / esperando que alguém venha e me diga, você pode entender, DBCC PAGE
mas eu estava procurando no lugar errado.
fonte