sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man byter namn på en SQL Server-databas med T-SQL

Även om du säkert kan byta namn på en SQL Server-databas i SSMS-gränssnittet genom att högerklicka på databasnamnet och välja Byt namn , ibland kanske du föredrar (eller behöver) att göra det med Transact-SQL.

Det mest grundläggande sättet att byta namn på en databas med T-SQL är så här:

-- Change to the master database
USE master;

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

Det enda problemet med detta grundläggande skript är att det inte ändrar namnet på datafilerna och loggfilerna. I de flesta fall vill du förmodligen ändra namnen på dessa filer för att matcha det nya namnet. I så fall kan du ta följande skript och ersätta databasnamnet med ditt eget (liksom dess filnamn och sökvägar):

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

Det här skriptet byter namn på databasen, byter namn på de logiska namnen på datafilen och loggfilen och byter sedan namn på det faktiska fysiska filnamnet för dessa filer. Det avslutas med att välja en lista över alla databasfiler och deras platser. Detta låter dig kontrollera att dina filer faktiskt har rätt namn.

Använda Linux/Mac-filsökvägar

Ovanstående exempel använder Windows-filsökvägssyntax (bakåtstreck och en enhetsbeteckning). Om du använder Linux eller Mac kommer filsökvägssyntaxen att se ut mer som följande exempel (endast filsökvägarna har ändrats – allt annat förblir detsamma).

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

Se till att säkerhetskopiera huvuddatabasen när du har bytt namn på din databas (så här säkerhetskopierar du en databas med T-SQL). Du kanske också vill kontrollera/uppdatera alla skript du har för att säkerställa att de refererar till det nya databasnamnet.


  1. Anslut bord från två olika servrar

  2. Hur överför eller exporterar du SQL Server 2005-data till Excel

  3. Bokrecension:Benjamin Nevarez:Query Tuning &Optimization

  4. Dataanalys vs. datavetenskap:Vad är skillnaden?