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

SQL सर्वर इंस्टेंस के सभी डेटाबेस में प्राथमिक कुंजी बाधा के बिना तालिकाओं की सूची कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 62

परिदृश्य:

आप SQL सर्वर डेवलपर या SQL सर्वर DBA के रूप में काम कर रहे हैं। आपको SQL सर्वर इंस्टेंस पर सभी डेटाबेस से सभी तालिकाओं की सूची प्राप्त करने की आवश्यकता है जिसमें प्राथमिक कुंजी बाधाएं नहीं हैं। आप यह कैसे करेंगे?


समाधान:

हम SQL सर्वर इंस्टेंस पर सभी डेटाबेस से सभी तालिकाओं को प्राप्त करने के लिए सिस्टम दृश्यों का उपयोग करेंगे, जिनमें प्राथमिक कुंजी बाधाएं नहीं हैं। परिणाम सहेजने के लिए अस्थायी तालिका यदि OBJECT_ID('tempdb..#Results') पूर्ण ड्रॉप तालिका नहीं है #ResultsCREATE तालिका #परिणाम (सर्वरनाम VARCHAR(128), डेटाबेसनाम VARCHAR(128),SchemaName VARCHAR(128),TableName VARCHAR(128)) DECLARE CUR CURSORFORSELECT '[' + NAME + ']' sys.databases से DBName के रूप में जहां नाम नहीं है ('मास्टर', 'tempdb', 'मॉडल', 'msdb') Curinto @DatabaseNameWHILE @@FETCH_STATUS =0BEGIN - प्रत्येक डेटाबेस के लिए डायनामिक एसक्यूएल बनाएं DECLARE @SQL VARCHAR(MAX) =NULL SET @SQL ='#Results में डालें @@ ServerName, Table_CataLog को DatabaseName के रूप में, Table_Schema को TableSchema के रूप में, Table_Name को '+@DatabaseName+'.information_schema.tables से TableName के रूप में चुनें। टी जहां e मौजूद नहीं है ('+@DatabaseName+'.information_Schema.Table_Constraints C से 1 चुनें जहां Constraint_Type=''PRIMARY KEY'' और C.Table_Name=T.Table_Name and C.Table_Schema=T.Table_Schema ) और Table_Type=''BASE TABLE ''' EXEC (@SQL) --PRINT @SQL फ़ेच फ्रॉम Cur से @DatabaseNameENDCLOSE CurDEALLOCATE Cur-- Temp तालिका से सभी रिकॉर्ड चुनें * #Results से चुनें
 
 मैंने अपने SQL सर्वर इंस्टेंस पर उपरोक्त क्वेरी निष्पादित की और उन सभी डेटाबेस से तालिकाओं की सूची प्राप्त की जिनमें प्राथमिक कुंजी बाधाएं नहीं हैं।

एसक्यूएल सर्वर इंस्टेंस से सभी टेबल प्राप्त करें जिनमें प्राथमिक कुंजी बाधा नहीं है - एसक्यूएल सर्वर / टीएसक्यूएल ट्यूटोरियल

  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 सर्वर 2005 - तालिका को प्रोग्रामेटिक रूप से निर्यात करें (इसे फिर से बनाने के लिए एक .sql फ़ाइल चलाएँ)

  2. SQL में एकाधिक वर्णों को कैसे बदलें?

  3. बफर कैश:यह क्या है और यह डेटाबेस के प्रदर्शन को कैसे प्रभावित करता है?

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

  5. टी-एसक्यूएल:सभी डुप्लिकेट पंक्तियों को हटाना लेकिन एक रखना