Chociaż z pewnością możesz zmienić nazwę bazy danych SQL Server w GUI SSMS, klikając prawym przyciskiem myszy nazwę bazy danych i wybierając Zmień nazwę , czasami wolisz (lub potrzebujesz) zrobić to za pomocą Transact-SQL.
Najbardziej podstawowy sposób zmiany nazwy bazy danych przy użyciu T-SQL jest następujący:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
Jedynym problemem związanym z tym podstawowym skryptem jest to, że nie zmienia on nazw plików danych i plików dziennika. W większości przypadków prawdopodobnie będziesz chciał zmienić nazwy tych plików, aby pasowały do nowej nazwy. W takim przypadku możesz skorzystać z następującego skryptu i zastąpić nazwę bazy danych własną (jak również nazwy plików i ścieżki):
-- 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;
Ten skrypt zmienia nazwę bazy danych, zmienia nazwy logiczne pliku danych i pliku dziennika, a następnie zmienia nazwę rzeczywistego pliku fizycznego tych plików. Kończy się wybraniem listy wszystkich plików bazy danych i ich lokalizacji. Pozwala to sprawdzić, czy Twoje pliki rzeczywiście mają poprawną nazwę.
Korzystanie ze ścieżek plików Linux/Mac
W powyższym przykładzie użyto składni ścieżki pliku systemu Windows (ukośniki odwrotne i litera dysku). Jeśli używasz Linuksa lub Maca, składnia ścieżki pliku będzie wyglądać bardziej jak w poniższym przykładzie (tylko ścieżki plików uległy zmianie – wszystko inne pozostaje bez zmian).
-- 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;
Pamiętaj, aby wykonać kopię zapasową głównej bazy danych po zmianie nazwy baz danych (tutaj opisano, jak wykonać kopię zapasową bazy danych za pomocą T-SQL). Możesz również sprawdzić/zaktualizować wszystkie skrypty, aby upewnić się, że odwołują się do nowej nazwy bazy danych.