Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como renomear um banco de dados SQL Server usando T-SQL


Embora você certamente possa renomear um banco de dados SQL Server na GUI do SSMS, clicando com o botão direito do mouse no nome do banco de dados e selecionando Renomear , às vezes você pode preferir (ou precisar) fazer isso usando o Transact-SQL.

A maneira mais básica de renomear um banco de dados usando T-SQL é assim:
-- Change to the master database
USE master;

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

O único problema com este script básico é que ele não altera o nome dos arquivos de dados e arquivos de log. Na maioria dos casos, você provavelmente desejará alterar os nomes desses arquivos para corresponder ao novo nome. Nesse caso, você pode pegar o seguinte script e substituir o nome do banco de dados pelo seu próprio (assim como seus nomes de arquivo e caminhos):

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

Esse script renomeia o banco de dados, renomeia os nomes lógicos do arquivo de dados e do arquivo de log e, em seguida, renomeia o nome do arquivo físico real desses arquivos. Ele termina com a seleção de uma lista de todos os arquivos de banco de dados e seus locais. Isso permite que você verifique se seus arquivos de fato têm o nome correto.

Usando caminhos de arquivo Linux/Mac


O exemplo acima usa a sintaxe de caminho de arquivo do Windows (barras invertidas e uma letra de unidade). Se você usa Linux ou Mac, a sintaxe do caminho do arquivo será mais parecida com o exemplo a seguir (somente os caminhos do arquivo foram alterados – todo o resto permanece o mesmo).
-- 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;

Certifique-se de fazer backup do banco de dados mestre depois de renomear seu(s) banco(s) de dados (veja como fazer backup de um banco de dados com T-SQL). Você também pode querer verificar/atualizar quaisquer scripts que você tenha para garantir que eles façam referência ao novo nome do banco de dados.