sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan omdøbes databasen i SQL Server - SQL Server / TSQL Tutorial Del 26

Scenarie:

Vi står ofte over for den situation, hvor vi skal omdøbe databasen. Tænk over situationen, du arbejder som SQL Server-udvikler for finansfirmaet, og de har databasenavnet TechBrothersIT, og de vil gerne omdøbe til Techbrothers. Du skal levere de scripts, der kan køres i QA, UAT og produktionsmiljø.

Løsning:

Omdøbning via GUI:
Omdøbning af database er meget let, du kan blot højreklikke på database og derefter vælge Omdøb.
Sådan omdøber du databasen i SQL Server - SQL Server / TSQL Tutorial

Du vil se, at navnet på databasen vil bede dig om at ændre. Gå videre og skift det og tryk på Enter. Sådan omdøber du databasen i SQL Server - SQL Server / TSQL-vejledning



Sådan omdøber du database ved hjælp af TSQL: Du kan bruge TSQL til at omdøbe databasen i SQL Server.
1) Ved at bruge Sp_Rename System Stored Procedure kan vi bruge sp_rename system Stored Procedure til at omdøbe databasen i SQL server. Lad os sige, at vi gerne vil omdøbe TechBrtohersIT til TechBrother. Vi kan bruge nedenstående script.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Brug Alter Database med Modify Vi kan bruge nedenstående script til at omdøbe. I dette eksempel omdøber jeg TechBrothersIT til TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Almindelig fejl: Lad os sige, at databasen er i brug af forskellige applikationer. du får muligvis under fejl.
Msg 5030, Level 16, State 2, Line 4
Databasen kunne ikke udelukkende låses til at udføre handlingen.

I dette tilfælde kan du kan dræbe alle forbindelser, før du kører omdøb script. Nedenstående script kan bruges til at dræbe alle forbindelser på en database. Sørg for med dit team og andre teams, før du dræber alle forbindelser på databasen for at omdøbe.
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. Rette "Konvertering mislykkedes ved konvertering af varchar-værdien" Når du prøver at sammenkæde i SQL Server

  2. Hvordan parametriserer jeg en nul-streng med DBNull.Value klart og hurtigt

  3. Neo4j Query Language - Cypher

  4. Kunne ikke finde den lagrede procedure 'dbo.aspnet_CheckSchemaVersion'