Även om du säkert kan byta namn på en SQL Server-databas i SSMS-gränssnittet genom att högerklicka på databasnamnet och välja Byt namn , ibland kanske du föredrar (eller behöver) att göra det med Transact-SQL.
Det mest grundläggande sättet att byta namn på en databas med T-SQL är så här:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
Det enda problemet med detta grundläggande skript är att det inte ändrar namnet på datafilerna och loggfilerna. I de flesta fall vill du förmodligen ändra namnen på dessa filer för att matcha det nya namnet. I så fall kan du ta följande skript och ersätta databasnamnet med ditt eget (liksom dess filnamn och sökvägar):
-- 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;
Det här skriptet byter namn på databasen, byter namn på de logiska namnen på datafilen och loggfilen och byter sedan namn på det faktiska fysiska filnamnet för dessa filer. Det avslutas med att välja en lista över alla databasfiler och deras platser. Detta låter dig kontrollera att dina filer faktiskt har rätt namn.
Använda Linux/Mac-filsökvägar
Ovanstående exempel använder Windows-filsökvägssyntax (bakåtstreck och en enhetsbeteckning). Om du använder Linux eller Mac kommer filsökvägssyntaxen att se ut mer som följande exempel (endast filsökvägarna har ändrats – allt annat förblir detsamma).
-- 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;
Se till att säkerhetskopiera huvuddatabasen när du har bytt namn på din databas (så här säkerhetskopierar du en databas med T-SQL). Du kanske också vill kontrollera/uppdatera alla skript du har för att säkerställa att de refererar till det nya databasnamnet.