Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zmienić nazwę bazy danych SQL Server za pomocą T-SQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obsługiwać wiele obiektów za pomocą okna szczegółów Eksploratora obiektów w SSMS — samouczek SQL Server / TSQL, część 22

  2. Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla początkujących

  3. Jak dodać numery linii w SQL Server Management Studio (SSMS) — samouczek SQL Server / TSQL, część 11

  4. Generatory danych dla serwera SQL?

  5. Odpowiednik C# typów danych SQL Server