परिदृश्य:
हम अक्सर ऐसी स्थिति का सामना करते हैं जहां हमें डेटाबेस का नाम बदलने की आवश्यकता होती है। स्थिति के बारे में सोचें, आप वित्तीय फर्म के लिए SQL सर्वर डेवलपर के रूप में काम कर रहे हैं और उनके पास डेटाबेस नाम TechBrothersIT है और वे Techbrothers का नाम बदलना चाहेंगे। आपको वे स्क्रिप्ट प्रदान करने की आवश्यकता है जो QA, UAT और उत्पादन परिवेश में चलाई जा सकें।समाधान:
जीयूआई द्वारा नामकरण:डेटाबेस का नाम बदलना बहुत आसान है, आप बस डेटाबेस पर राइट क्लिक कर सकते हैं और फिर नाम बदलें चुन सकते हैं।
SQL सर्वर में डेटाबेस का नाम कैसे बदलें - SQL सर्वर / TSQL ट्यूटोरियल
आप देखें कि डेटाबेस का नाम आपको परिवर्तन के लिए प्रेरित करेगा। आगे बढ़ें और इसे बदलें और एंटर दबाएं। SQL सर्वर में डेटाबेस का नाम कैसे बदलें - SQL सर्वर / TSQL ट्यूटोरियल
TSQL का उपयोग करके डेटाबेस का नाम कैसे बदलें: आप SQL सर्वर में डेटाबेस का नाम बदलने के लिए TSQL का उपयोग कर सकते हैं।
1) Sp_Rename सिस्टम संग्रहित प्रक्रिया का उपयोग करके हम SQL सर्वर में डेटाबेस का नाम बदलने के लिए sp_rename सिस्टम संग्रहीत कार्यविधि का उपयोग कर सकते हैं। मान लें कि हम TechBrtohersIT का नाम बदलकर TechBrother करना चाहते हैं। हम नीचे दी गई स्क्रिप्ट का उपयोग कर सकते हैं।
sp_renamedb 'OldDatabaseName','NewDatabaseName' EXEC sp_renamedb 'TechBrothersIT','TechBrothers'
2) संशोधित के साथ डेटाबेस बदलें का उपयोग करें हम नाम बदलने के लिए नीचे दी गई स्क्रिप्ट का उपयोग कर सकते हैं। इस उदाहरण में, मैं TechBrothersIT का नाम बदलकर TechBrothers कर रहा हूँ।
USE master; GO ALTER DATABASE TechBrothersIT Modify Name = TechBrothers ; GO
सामान्य त्रुटि: मान लें कि डेटाबेस विभिन्न अनुप्रयोगों द्वारा उपयोग में है। आपको नीचे त्रुटि मिल सकती है।
संदेश 5030, स्तर 16, राज्य 2, पंक्ति 4
ऑपरेशन करने के लिए डेटाबेस को विशेष रूप से लॉक नहीं किया जा सकता है।
इस मामले में, आप नाम बदलें स्क्रिप्ट चलाने से पहले सभी कनेक्शनों को मार सकते हैं। डेटाबेस पर सभी कनेक्शनों को मारने के लिए नीचे स्क्रिप्ट का उपयोग किया जा सकता है। नाम बदलने के लिए डेटाबेस पर सभी कनेक्शनों को मारने से पहले अपनी टीम और अन्य टीमों के साथ सुनिश्चित करें।
USE MASTER GO DECLARE @DatabaseName AS VARCHAR(500) -->Provide the DataBaseName for which want to Kill all processes. SET @DatabaseName='YourDataBaseName' DECLARE @Spid INT DECLARE KillProcessCur CURSOR FOR SELECT spid FROM sys.sysprocesses WHERE DB_NAME(dbid) = @DatabaseName OPEN KillProcessCur FETCH Next FROM KillProcessCur INTO @Spid WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @SQL VARCHAR(500)=NULL SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5)) EXEC (@SQL) PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR(5)) + ' killed successfull' FETCH Next FROM KillProcessCur INTO @Spid END CLOSE KillProcessCur DEALLOCATE KillProcessCur