आप SQL सर्वर में डेटाबेस में पहचान कॉलम की सूची वापस करने के लिए टी-एसक्यूएल का उपयोग कर सकते हैं।
आप sys.identity_columns
. का उपयोग करके ऐसा कर सकते हैं सिस्टम कैटलॉग व्यू।
उदाहरण 1 - मूल उपयोग
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
USE Test; SELECT OBJECT_NAME(object_id) AS [object], name, seed_value, increment_value, last_value, is_not_for_replication FROM sys.identity_columns;
परिणाम:
+---------------------------+------------------+--------------+-------------------+--------------+--------------------------+ | object | name | seed_value | increment_value | last_value | is_not_for_replication | |---------------------------+------------------+--------------+-------------------+--------------+--------------------------| | ConstraintTest | ConstraintTestId | 1 | 1 | 17 | 0 | | sqlagent_job_history | instance_id | 1 | 1 | NULL | 0 | | sqlagent_jobsteps_logs | log_id | 1 | 1 | NULL | 0 | | Cats | id | 1 | 1 | 2 | 0 | | Dogs | id | 1 | 1 | 1 | 0 | | t1 | id | 1 | 1 | 2 | 0 | | t2 | id | 150 | 10 | 160 | 0 | | scope_identity_test | id | 1 | 1 | 3 | 0 | | Event | EventId | 1 | 1 | NULL | 0 | | Scoreboard | ScoreId | 1 | 1 | 8 | 0 | | Pets | PetId | 1 | 1 | 5 | 0 | | BestFriends | pet_id | 101 | 10 | 121 | 0 | | Cities | CityId | 150 | 10 | 180 | 0 | | Colors | ColorId | 1 | 1 | 6 | 0 | | queue_messages_1977058079 | queuing_order | 0 | 1 | NULL | 0 | | t6 | id | 1 | 1 | 1 | 0 | | t7 | id | 100 | 1 | 100 | 0 | | queue_messages_2009058193 | queuing_order | 0 | 1 | NULL | 0 | | queue_messages_2041058307 | queuing_order | 0 | 1 | NULL | 0 | +---------------------------+------------------+--------------+-------------------+--------------+--------------------------+
मैंने अपने Test
. का उपयोग किया इस उदाहरण के लिए डेटाबेस। मैंने इसे इसलिए चुना क्योंकि मैंने पहले विभिन्न बीज वृद्धि मूल्यों के साथ पहचान कॉलम बनाए हैं।
इस उदाहरण में मैंने OBJECT_NAME()
. का उपयोग किया है ऑब्जेक्ट का नाम object_id
. से प्राप्त करने के लिए कार्य करता है कॉलम। इस मामले में यह तालिका का नाम है। तो दूसरे शब्दों में, पहला कॉलम तालिका नाम सूचीबद्ध करता है, और दूसरा कॉलम पहचान कॉलम सूचीबद्ध करता है।
उदाहरण 2 - सभी स्तंभों की सूची बनाएं
पिछले उदाहरण में मैंने केवल कुछ ही कॉलम लौटाए थे। ऐसा इसलिए है क्योंकि sys.identity_columns
बहुत सारे कॉलम लौटाता है।
इस उदाहरण में मैं केवल एक पहचान कॉलम (यानी एक पंक्ति) लौटाता हूं, लेकिन मैं उस पंक्ति के सभी कॉलम लौटाता हूं। परिणाम प्रदर्शित करते समय मैं लंबवत आउटपुट का उपयोग करता हूं ताकि आपको किनारे पर स्क्रॉल करने के लिए मजबूर न किया जा सके।
SELECT * FROM sys.identity_columns WHERE OBJECT_NAME(object_id) = 'Cities';
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
object_id | 1970106059 name | CityId column_id | 1 system_type_id | 56 user_type_id | 56 max_length | 4 precision | 10 scale | 0 collation_name | NULL is_nullable | 0 is_ansi_padded | 0 is_rowguidcol | 0 is_identity | 1 is_filestream | 0 is_replicated | 0 is_non_sql_subscribed | 0 is_merge_published | 0 is_dts_replicated | 0 is_xml_document | 0 xml_collection_id | 0 default_object_id | 0 rule_object_id | 0 seed_value | 150 increment_value | 10 last_value | 180 is_not_for_replication | 0 is_computed | 0 is_sparse | 0 is_column_set | 0 generated_always_type | 0 generated_always_type_desc | NOT_APPLICABLE encryption_type | NULL encryption_type_desc | NULL encryption_algorithm_name | NULL column_encryption_key_id | NULL column_encryption_key_database_name | NULL is_hidden | 0 is_masked | 0 graph_type | NULL graph_type_desc | NULL
इनमें से अधिकतर कॉलम sys.columns
. से इनहेरिट किए गए हैं , लेकिन कुछ sys.identity columns
. के लिए अद्वितीय हैं . इन स्तंभों के विस्तृत विवरण के लिए, sys.columns
. के लिए Microsoft दस्तावेज़ देखें और sys.identity columns
।
टेबल और स्कीमा सहित
आपने देखा होगा कि इन उदाहरणों में परिणाम सेट में स्कीमा शामिल नहीं है। यदि आपको स्कीमा वापस करने की आवश्यकता है, तो पहचान कॉलम सूचीबद्ध करते समय तालिकाएँ और स्कीमा शामिल करना देखें। उस लेख में परिणामों से आंतरिक तालिकाओं को निकालने का एक उदाहरण भी शामिल है।