DBCC CHECKIDENT
प्रबंधन कमांड पहचान काउंटर रीसेट करने के लिए प्रयोग किया जाता है। कमांड सिंटैक्स है:
DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]
उदाहरण:
DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO
यह Azure SQL डेटाबेस के पिछले संस्करणों में समर्थित नहीं था, लेकिन अब समर्थित है।
कृपया ध्यान दें कि new_reseed_value
तर्क प्रलेखन के अनुसार SQL सर्वर संस्करणों में भिन्न है :
यदि पंक्तियाँ तालिका में मौजूद हैं, तो अगली पंक्ति new_reseed_value मान के साथ डाली गई है । SQL Server 2008 R2 और इससे पहले के संस्करण में, अगली पंक्ति सम्मिलित की गई new_reseed_value + वर्तमान वेतन वृद्धि का उपयोग करती है ।
हालाँकि, मुझे यह जानकारी भ्रामक लगती है (सिर्फ सादा गलत वास्तव में) क्योंकि देखा गया व्यवहार बताता है कि कम से कम SQL Server 2012 अभी भी new_reseed_value + वर्तमान वेतन वृद्धि तर्क का उपयोग करता है। Microsoft Example C
ने उसी पृष्ठ पर अपने स्वयं के साथ विरोधाभास किया :
C. वर्तमान पहचान मूल्य को एक नए मूल्य के लिए मजबूर करना
निम्न उदाहरण AddressType तालिका में वर्तमान पहचान मान को AddressType तालिका में 10. के मान पर बाध्य करता है क्योंकि तालिका में मौजूदा पंक्तियाँ हैं, अगली पंक्ति सम्मिलित मान के रूप में 11 का उपयोग करेगी, अर्थात, नया वर्तमान वेतन वृद्धि मान स्तंभ मान प्लस 1।
USE AdventureWorks2012;
GO
DBCC CHECKIDENT ('Person.AddressType', RESEED, 10);
GO
फिर भी, यह सभी नए SQL सर्वर संस्करणों पर विभिन्न व्यवहार के लिए एक विकल्प छोड़ देता है। मैं यह सुनिश्चित करने का एकमात्र तरीका हूं, जब तक कि Microsoft अपने स्वयं के प्रलेखन में चीजों को साफ न कर दे, उपयोग से पहले वास्तविक परीक्षण करना है।