Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर डेटाबेस में सभी पहचान कॉलम सूचीबद्ध करें:sys.identity_columns

आप 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

टेबल और स्कीमा सहित

आपने देखा होगा कि इन उदाहरणों में परिणाम सेट में स्कीमा शामिल नहीं है। यदि आपको स्कीमा वापस करने की आवश्यकता है, तो पहचान कॉलम सूचीबद्ध करते समय तालिकाएँ और स्कीमा शामिल करना देखें। उस लेख में परिणामों से आंतरिक तालिकाओं को निकालने का एक उदाहरण भी शामिल है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2017 चरण दर चरण स्थापना -2

  2. एक आईडी मैच के आधार पर एक टेबल से दूसरी टेबल में एसक्यूएल अपडेट

  3. चर स्तंभ नामों के साथ गतिशील अद्यतन विवरण

  4. छवियों को एक varbinary (अधिकतम) कॉलम में कैसे स्टोर करें?

  5. SQL सर्वर 2008 पंक्ति सम्मिलित करें और टाइमस्टैम्प अपडेट करें