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

MSSQL में सभी तालिकाओं, विचारों और संग्रहीत कार्यविधियों का स्कीमा कैसे बदलें

हां, यह संभव है।

डेटाबेस ऑब्जेक्ट के स्कीमा को बदलने के लिए आपको निम्न SQL स्क्रिप्ट चलाने की आवश्यकता है:

ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.ObjectName

जहां ऑब्जेक्टनाम किसी तालिका, दृश्य या संग्रहीत कार्यविधि का नाम हो सकता है। समस्या किसी दिए गए shcema नाम के साथ सभी डेटाबेस ऑब्जेक्ट्स की सूची प्राप्त कर रही है। शुक्र है, sys.Objects नाम की एक सिस्टम टेबल है जो सभी डेटाबेस ऑब्जेक्ट्स को स्टोर करती है। निम्न क्वेरी इस कार्य को पूरा करने के लिए सभी आवश्यक SQL स्क्रिप्ट उत्पन्न करेगी:

SELECT 'ALTER SCHEMA NewSchemaName TRANSFER [' + SysSchemas.Name + '].[' + DbObjects.Name + '];'
FROM sys.Objects DbObjects
INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id
WHERE SysSchemas.Name = 'OldSchemaName'
AND (DbObjects.Type IN ('U', 'P', 'V'))

जहां टाइप 'यू' यूजर टेबल को दर्शाता है, 'वी' विचारों को दर्शाता है और 'पी' संग्रहित प्रक्रियाओं को दर्शाता है।

उपरोक्त स्क्रिप्ट को चलाने से ऑब्जेक्ट को एक स्कीमा से दूसरे में स्थानांतरित करने के लिए आवश्यक SQL कमांड उत्पन्न होंगे। कुछ इस तरह:

ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.CONTENT_KBArticle;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Proc_Analytics_Statistics_Delete;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Proc_CMS_QueryProvider_Select;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.COM_ShoppingCartSKU;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.CMS_WebPart;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Polls_PollAnswer;

अब आप ट्रांसफर ऑपरेशन को पूरा करने के लिए इन सभी जेनरेट की गई क्वेरी को चला सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गतिरोध के कारण SqlException को कैसे पकड़ें?

  2. क्रॉस जॉइन बिहेवियर (SQLServer 2008)

  3. SQL सर्वर में एक अस्थायी तालिका में संग्रहीत कार्यविधि के परिणाम कैसे सम्मिलित करें

  4. एक बड़ी SQL स्क्रिप्ट निष्पादित करें (GO कमांड के साथ)

  5. SQL सर्वर में GOTO का उपयोग कैसे करें