Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So benennen Sie eine SQL Server-Datenbank mit T-SQL um

Sie können zwar eine SQL Server-Datenbank in der SSMS-GUI umbenennen, indem Sie mit der rechten Maustaste auf den Datenbanknamen klicken und Umbenennen auswählen , manchmal möchten (oder müssen) Sie dies mit Transact-SQL tun.

Der einfachste Weg, eine Datenbank mit T-SQL umzubenennen, ist wie folgt:

-- Change to the master database
USE master;

-- Change the database name
ALTER DATABASE Films  
Modify Name = Movies; 
GO

Das einzige Problem mit diesem einfachen Skript besteht darin, dass es den Namen der Datendateien und Protokolldateien nicht ändert. In den meisten Fällen möchten Sie wahrscheinlich die Namen dieser Dateien ändern, damit sie mit dem neuen Namen übereinstimmen. In diesem Fall können Sie das folgende Skript nehmen und den Datenbanknamen durch Ihren eigenen ersetzen (sowie die Dateinamen und Pfade):

-- 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;

Dieses Skript benennt die Datenbank um, benennt die logischen Namen der Datendatei und der Protokolldatei um und benennt dann die tatsächlichen physischen Dateinamen dieser Dateien um. Es endet mit der Auswahl einer Liste aller Datenbankdateien und ihrer Speicherorte. So können Sie überprüfen, ob Ihre Dateien tatsächlich den richtigen Namen haben.

Linux/Mac-Dateipfade verwenden

Das obige Beispiel verwendet die Windows-Dateipfadsyntax (Backslashes und einen Laufwerksbuchstaben). Wenn Sie Linux oder Mac verwenden, sieht die Dateipfadsyntax eher wie im folgenden Beispiel aus (nur die Dateipfade haben sich geändert – alles andere bleibt gleich).

-- 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;

Stellen Sie sicher, dass Sie die Master-Datenbank sichern, nachdem Sie Ihre Datenbank(en) umbenannt haben (hier erfahren Sie, wie Sie eine Datenbank mit T-SQL sichern). Möglicherweise möchten Sie auch alle Skripts überprüfen/aktualisieren, um sicherzustellen, dass sie auf den neuen Datenbanknamen verweisen.