sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo cambiar el nombre de la base de datos en SQL Server - SQL Server / Tutorial TSQL Parte 26

Escenario:

A menudo nos enfrentamos a la situación en la que necesitamos cambiar el nombre de la base de datos. Piense en la situación, está trabajando como desarrollador de SQL Server para una empresa financiera y tienen el nombre de base de datos TechBrothersIT y les gustaría cambiar el nombre a Techbrothers. Debe proporcionar los scripts que se pueden ejecutar en el entorno de control de calidad, UAT y producción.

Solución:

Renombramiento por GUI:
Cambiar el nombre de la base de datos es muy fácil, simplemente puede hacer clic derecho en la base de datos y luego elegir Cambiar nombre.
Cómo cambiar el nombre de la base de datos en SQL Server - Tutorial de SQL Server / TSQL

Usted vea que el nombre de la base de datos le pedirá que lo cambie. Continúe, cámbielo y presione Entrar. Cómo cambiar el nombre de la base de datos en SQL Server - Tutorial de SQL Server/TSQL



Cómo cambiar el nombre de la base de datos usando TSQL: Puede usar TSQL para cambiar el nombre de la base de datos en SQL Server.
1) Mediante el uso del procedimiento almacenado del sistema Sp_RenamePodemos usar el procedimiento almacenado del sistema sp_rename para cambiar el nombre de la base de datos en el servidor SQL. Digamos que nos gustaría cambiar el nombre de TechBrtohersIT a TechBrother. Podemos usar el siguiente script.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Usar Alterar base de datos con Modificar Podemos usar el siguiente script para cambiar el nombre. En este ejemplo, estoy cambiando el nombre de TechBrothersIT a TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Error común: Digamos que la base de datos está en uso por diferentes aplicaciones. es posible que obtenga el siguiente error.
Mensaje 5030, nivel 16, estado 2, línea 4
La base de datos no se pudo bloquear exclusivamente para realizar la operación.

En este caso, puede eliminar todas las conexiones antes de ejecutar el script de cambio de nombre. El siguiente script se puede usar para eliminar todas las conexiones en una base de datos. Asegúrese con su equipo y otros equipos antes de eliminar todas las conexiones en la base de datos para cambiarles el nombre.
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