जबकि आप निश्चित रूप से डेटाबेस नाम पर राइट-क्लिक करके और नाम बदलें का चयन करके SSMS GUI में SQL सर्वर डेटाबेस का नाम बदल सकते हैं। , कभी-कभी आप Transact-SQL का उपयोग करके इसे करना पसंद कर सकते हैं (या आवश्यकता)।
T-SQL का उपयोग करके डेटाबेस का नाम बदलने का सबसे बुनियादी तरीका इस प्रकार है:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
इस मूल स्क्रिप्ट के साथ एकमात्र समस्या यह है कि यह डेटा फ़ाइलों और लॉग फ़ाइलों का नाम नहीं बदलता है। ज्यादातर मामलों में आप शायद नए नाम से मेल खाने के लिए इन फाइलों के नाम बदलना चाहेंगे। उस स्थिति में आप निम्न स्क्रिप्ट ले सकते हैं और डेटाबेस नाम को अपने नाम से बदल सकते हैं (साथ ही इसके फ़ाइल नाम और पथ):
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO -- Change the logical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films', NEWNAME = 'Movies' ); -- Change the logical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films_log', NEWNAME = 'Movies_log' ); -- Change the physical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies', FILENAME = 'D:\mssql\data\Movies.mdf' ); -- Change the physical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies_log', FILENAME = 'D:\mssql\data\Movies_log.ldf' ); -- Check it (View the list of database files and their locations) USE master; SELECT name 'Logical Name', physical_name 'File Location', size 'File Size' FROM sys.master_files;
यह स्क्रिप्ट डेटाबेस का नाम बदल देती है, डेटा फ़ाइल और लॉग फ़ाइल के तार्किक नामों का नाम बदल देती है, और फिर उन फ़ाइलों के वास्तविक भौतिक फ़ाइल नाम का नाम बदल देती है। यह सभी डेटाबेस फ़ाइलों और उनके स्थानों की सूची का चयन करने के साथ समाप्त होता है। इससे आप यह जांच सकते हैं कि आपकी फ़ाइलों का नाम वास्तव में सही है या नहीं।
Linux/Mac फ़ाइल पथों का उपयोग करना
उपरोक्त उदाहरण Windows फ़ाइल पथ सिंटैक्स (बैक स्लैश और एक ड्राइव अक्षर) का उपयोग करता है। यदि आप Linux या Mac का उपयोग करते हैं, तो फ़ाइल पथ सिंटैक्स निम्न उदाहरण की तरह अधिक दिखाई देगा (केवल फ़ाइल पथ बदल गए हैं - बाकी सब वही रहता है)।
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO -- Change the logical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films', NEWNAME = 'Movies' ); -- Change the logical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films_log', NEWNAME = 'Movies_log' ); -- Change the physical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies', FILENAME = '/var/opt/mssql/data/Movies.mdf' ); -- Change the physical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies_log', FILENAME = '/var/opt/mssql/data/Movies_log.ldf' ); -- Check it (View the list of database files and their locations) USE master; SELECT name 'Logical Name', physical_name 'File Location', size 'File Size' FROM sys.master_files;
अपने डेटाबेस का नाम बदलने के बाद मास्टर डेटाबेस का बैकअप लेना सुनिश्चित करें (यहां टी-एसक्यूएल के साथ डेटाबेस का बैकअप लेने का तरीका बताया गया है)। आप यह सुनिश्चित करने के लिए किसी भी स्क्रिप्ट की जांच/अपडेट करना चाहेंगे कि वे नए डेटाबेस नाम का संदर्भ लें।