sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man byter namn på databas i SQL Server - SQL Server / TSQL självstudie del 26

Scenario:

Vi möter ofta situationen där vi behöver byta namn på databasen. Tänk på situationen, du arbetar som SQL Server-utvecklare för finansföretaget och de har databasnamnet TechBrothersIT och de skulle vilja byta namn till Techbrothers. Du måste tillhandahålla de skript som kan köras i QA, UAT och produktionsmiljö.

Lösning:

Ändra namn via GUI:
Det är väldigt enkelt att byta namn på databasen, du kan helt enkelt högerklicka på databas och sedan välja Byt namn.
Hur man byter namn på databas i SQL Server - SQL Server / TSQL självstudie

Du kommer se att namnet på databasen kommer att uppmana dig att ändra. Gå vidare och ändra det och tryck på Enter. Hur man byter namn på en databas i SQL Server - SQL Server / TSQL självstudier



Hur man byter namn på databas med hjälp av TSQL: Du kan använda TSQL för att byta namn på databasen i SQL Server.
1) Genom att använda Sp_Rename System Stored ProcedureVi kan använda sp_rename system Stored Procedure för att byta namn på databasen i SQL-servern. Låt oss säga att vi skulle vilja byta namn på TechBrtohersIT till TechBrother. Vi kan använda nedanstående skript.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Använd Alter Database med Modify Vi kan använda nedanstående skript för att byta namn. I det här exemplet döper jag om TechBrothersIT till TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Vanligt fel: Låt oss säga att databasen används av olika applikationer. du kan få under felet.
Msg 5030, Level 16, State 2, Line 4
Databasen kunde inte låsas exklusivt för att utföra operationen.

I det här fallet kan du kan döda alla anslutningar innan du kör byta namn på skriptet. Nedanstående skript kan användas för att döda alla anslutningar på en databas. Se till med ditt team och andra team innan du dödar alla anslutningar på databasen för att döpa om.
USE MASTER
GO
DECLARE @DatabaseName AS VARCHAR(500)
-->Provide the DataBaseName for which want to Kill all processes.
SET @DatabaseName='YourDataBaseName'
DECLARE @Spid INT
DECLARE KillProcessCur CURSOR FOR
  SELECT spid
  FROM   sys.sysprocesses
  WHERE  DB_NAME(dbid) = @DatabaseName
OPEN KillProcessCur
FETCH Next FROM KillProcessCur INTO @Spid
WHILE @@FETCH_STATUS = 0
  BEGIN
      DECLARE @SQL VARCHAR(500)=NULL
      SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5))
      EXEC (@SQL)
      PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR(5))
            + ' killed successfull'
      FETCH Next FROM KillProcessCur INTO @Spid
  END
CLOSE KillProcessCur
DEALLOCATE KillProcessCur
 
 
 
 
 
  1. Hur man installerar Squirrel SQL Client

  2. DBMS-handledning:En komplett kraschkurs i DBMS

  3. Hur kan jag fixa det här felet:SQL92 som inte stöds?

  4. Välja en flytande i MySQL