sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan omdøbes en SQL Server-database ved hjælp af T-SQL

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.


  1. Hvorfor kan PL/pgSQL-funktioner have bivirkning, mens SQL-funktioner ikke kan?

  2. Hvordan overfører man værdier til IN-operatøren dynamisk?

  3. Brug af SQL Server som billedlager

  4. PostgreSQL via SSH Tunnel