संपादित करें:
पूरे पृष्ठ डंप की तुलना घंटे के एक नंबर खर्च करने के बाद, मुझे एहसास हुआ वहाँ एक आसान तरीका है और मैं DMVs पर रहे की जाना चाहिए।
मूल्य बैकअप/पुनर्स्थापना से बचता है, जो एक स्पष्ट संकेत है कि यह संग्रहीत है - मैंने डीबी में सभी पृष्ठों को छोड़ दिया और रिकॉर्ड के दौरान स्थान/परिवर्तन नहीं मिला। पृष्ठों के 200k लाइन डंप की तुलना करना मजेदार नहीं है।
मैंने समर्पित व्यवस्थापक कंसोल का उपयोग किया था, मैंने एक पंक्ति डाली गई प्रत्येक आंतरिक तालिका का एक डंप लिया और फिर सिस्टम टेबल का एक और डंप लिया। दोनों डंप समान थे, जो इंगित करता है कि जब तक यह जीवित रहा, और इसलिए इसे संग्रहीत किया जाना चाहिए, यह उस स्तर पर भी खुलासा नहीं है।
तो एक सर्कल में घूमने के बाद मुझे एहसास हुआ कि डीएमवी का जवाब है।
create table foo (MyID int identity not null, MyField char(10))
insert into foo values ('test')
go 10
-- Inserted 10 rows
select Convert(varchar(8),increment_value) as IncrementValue,
Convert(varchar(8),last_value) as LastValue
from sys.identity_columns where name ='myid'
-- insert another row
insert into foo values ('test')
-- check the values again
select Convert(varchar(8),increment_value) as IncrementValue,
Convert(varchar(8),last_value) as LastValue
from sys.identity_columns where name ='myid'
-- delete the rows
delete from foo
-- check the DMV again
select Convert(varchar(8),increment_value) as IncrementValue,
Convert(varchar(8),last_value) as LastValue
from sys.identity_columns where name ='myid'
-- value is currently 11 and increment is 1, so the next insert gets 12
insert into foo values ('test')
select * from foo
Result:
MyID MyField
----------- ----------
12 test
(1 row(s) affected)
सिर्फ इसलिए कि पंक्तियों को हटा दिया गया, अंतिम मान रीसेट नहीं था, इसलिए अंतिम मान + वेतन वृद्धि सही जवाब होना चाहिए।
इसके अलावा मेरे ब्लॉग पर एपिसोड लिखने जा रहा है।
ओह, और यह सब करने के लिए शॉर्टकट:
select ident_current('foo') + ident_incr('foo')
तो यह वास्तव में पता चला है आसान होने के लिए - लेकिन यह सब मान लिया गया कोई अन्य व्यक्ति आपकी आईडी का इस्तेमाल किया है, जबकि आप इसे वापस मिल गया। जांच के लिए ठीक है, लेकिन मैं इसे कोड में उपयोग नहीं करना चाहता।
एक लेन-देन पहचान काउंटर को वापस नहीं लाएगा और इसके अलावा हर कोई थ्रेड उस नंबर का उपयोग करता है जो आपको लगता है कि आप बाद में प्राप्त करेंगे। – idstam
इस @idstam के लिए धन्यवाद, मुझे इस पर संदेह था। – iWeasel