I když určitě můžete přejmenovat databázi SQL Server v GUI SSMS kliknutím pravým tlačítkem na název databáze a výběrem Přejmenovat , někdy to možná preferujete (nebo potřebujete) pomocí Transact-SQL.
Nejzákladnější způsob přejmenování databáze pomocí T-SQL je tento:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
Jediný problém s tímto základním skriptem je, že nemění název datových souborů a souborů protokolu. Ve většině případů budete pravděpodobně chtít změnit názvy těchto souborů tak, aby odpovídaly novému názvu. V takovém případě můžete použít následující skript a nahradit název databáze svým vlastním (stejně jako názvy souborů a cesty):
-- 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;
Tento skript přejmenuje databázi, přejmenuje logické názvy datového souboru a souboru protokolu a poté přejmenuje skutečné fyzické názvy souborů těchto souborů. Dokončí to výběrem seznamu všech databázových souborů a jejich umístění. To vám umožní zkontrolovat, že vaše soubory mají ve skutečnosti správný název.
Používání cest souborů Linux/Mac
Výše uvedený příklad používá syntaxi cesty k souboru systému Windows (zpětná lomítka a písmeno jednotky). Pokud používáte Linux nebo Mac, syntaxe cesty k souboru bude vypadat spíše jako v následujícím příkladu (pouze cesty k souboru se změnily – vše ostatní zůstává stejné).
-- 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;
Jakmile přejmenujete svou databázi, nezapomeňte zálohovat hlavní databázi (zde je návod, jak zálohovat databázi pomocí T-SQL). Můžete také chtít zkontrolovat/aktualizovat všechny skripty, které máte, abyste se ujistili, že odkazují na nový název databáze.