sql >> Database >  >> RDS >> Sqlserver

De naam van een SQL Server-database wijzigen met T-SQL

Hoewel u de naam van een SQL Server-database in de SSMS GUI zeker kunt wijzigen door met de rechtermuisknop op de databasenaam te klikken en Rename te selecteren. , soms heeft u er misschien de voorkeur (of nodig) voor om het met Transact-SQL te doen.

De meest eenvoudige manier om een ​​database te hernoemen met T-SQL is als volgt:

-- Change to the master database
USE master;

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

Het enige probleem met dit basisscript is dat het de naam van de gegevensbestanden en logbestanden niet verandert. In de meeste gevallen wilt u waarschijnlijk de namen van deze bestanden wijzigen zodat ze overeenkomen met de nieuwe naam. In dat geval kunt u het volgende script nemen en de databasenaam vervangen door uw eigen (evenals de bestandsnamen en paden):

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

Dit script hernoemt de database, hernoemt de logische namen van het gegevensbestand en het logbestand en hernoemt vervolgens de feitelijke fysieke bestandsnaam van die bestanden. Het eindigt met het selecteren van een lijst met alle databasebestanden en hun locaties. Hiermee kunt u controleren of uw bestanden inderdaad de juiste naam hebben.

Linux/Mac-bestandspaden gebruiken

Het bovenstaande voorbeeld gebruikt de syntaxis van het Windows-bestandspad (backslashes en een stationsletter). Als u Linux of Mac gebruikt, zal de syntaxis van het bestandspad meer lijken op het volgende voorbeeld (alleen de bestandspaden zijn gewijzigd – al het andere blijft hetzelfde).

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

Zorg ervoor dat u een back-up maakt van de hoofddatabase zodra u uw database(s) heeft hernoemd (hier leest u hoe u een back-up maakt van een database met T-SQL). Misschien wilt u ook alle scripts die u heeft controleren/bijwerken om er zeker van te zijn dat ze verwijzen naar de nieuwe databasenaam.


  1. Hoe Prisma te gebruiken

  2. Slaapstand configureren om Oracle's SYS_GUID() voor primaire sleutel te gebruiken

  3. In SQL, hoe de bovenste 2 rijen voor elke groep te selecteren?

  4. Veelgebruikte database-infrastructuurpatronen vergelijken