Selvom du helt sikkert kan omdøbe en SQL Server-database i SSMS GUI ved at højreklikke på databasenavnet og vælge Omdøb , nogle gange foretrækker du (eller har brug for) at gøre det ved hjælp af Transact-SQL.
Den mest grundlæggende måde at omdøbe en database ved hjælp af T-SQL er sådan her:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
Det eneste problem med dette grundlæggende script er, at det ikke ændrer navnet på datafilerne og logfilerne. I de fleste tilfælde vil du sandsynligvis ændre navnene på disse filer, så de matcher det nye navn. I så fald kan du tage følgende script og erstatte databasenavnet med dit eget (såvel som dets filnavne og stier):
-- 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;
Dette script omdøber databasen, omdøber de logiske navne på datafilen og logfilen og omdøber derefter det faktiske fysiske filnavn på disse filer. Det afsluttes med at vælge en liste over alle databasefiler og deres placeringer. Dette giver dig mulighed for at kontrollere, at dine filer faktisk har det korrekte navn.
Brug af Linux/Mac-filstier
Ovenstående eksempel bruger Windows-filstisyntaks (tilbage skråstreger og et drevbogstav). Hvis du bruger Linux eller Mac, vil filstisyntaksen ligne det følgende eksempel (kun filstierne er ændret – alt andet forbliver det samme).
-- 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;
Sørg for at tage backup af masterdatabasen, når du har omdøbt dine databaser (her er, hvordan du sikkerhedskopierer en database med T-SQL). Du vil måske også tjekke/opdatere alle scripts, du har, for at sikre, at de refererer til det nye databasenavn.