J'espère que quelqu'un pourra m'orienter dans la bonne direction sur celui-ci. Voici mes travaux jusqu'à présent.
SELECT * FROM sys.identity_columns
est une vue système qui donne "last_value" mais la définition de cette vue utilise une fonction interne IdentityProperty(colName, 'LastValue')
- c'est donc une impasse (ne pas la tirer d'une table système là-bas).
Partout (j'ai regardé) sur Internet suggère d'utiliser des DBCC IDENT_...
commandes pour découvrir la valeur mais cela me laisse toujours dans le noir quant à l'endroit où il est réellement stocké.
Donc, je suis arrivé à rechercher les pages individuelles avec DBCC PAGE(TestDB,1,1325,3)
mon harnais de test db et à utiliser la RESEED
commande pour réamorcer entre les valeurs 10 et 12.
Ce faisant, j'ai remarqué les valeurs hexadécimales sur le IAM: Header
, IAM: Single Page Allocations
et IAM: Extent Alloc Status Slot 1
tout a changé. (Et réalisé qu'ils changent de toute façon périodiquement avec la valeur bUse1 qui change également de façon incrémentielle).
Donc une autre impasse et je suis à court d'idées. Où puis-je chercher?
J'exécute SQL Server 2014. J'ai une soif insatiable de connaissances internes et je n'ai encore rien rencontré d'aussi insaisissable. Cela a attiré mon attention parce qu'en théorie, il (une valeur absolue) est stocké quelque part et devrait (sans doute) être localisable. Dans ma quête pour dénicher des emplacements de données / métadonnées stockées en interne, cette valeur particulière me semble particulièrement insaisissable. J'imagine / j'espère que quelqu'un viendra me dire, vous pouvez l'obtenir DBCC PAGE
mais je cherchais au mauvais endroit.
la source