sql >> Database >  >> RDS >> Sqlserver

Database hernoemen in SQL Server - SQL Server / TSQL-zelfstudie, deel 26

Scenario:

We worden vaak geconfronteerd met de situatie waarin we de database moeten hernoemen. Denk aan de situatie, u werkt als SQL Server-ontwikkelaar voor een financieel bedrijf en zij hebben de databasenaam TechBrothersIT en willen de naam wijzigen in Techbrothers. U moet de scripts aanleveren die kunnen worden uitgevoerd in de QA-, UAT- en productieomgeving.

Oplossing:

Naam wijzigen via GUI:
De naam van de database wijzigen is heel eenvoudig, u kunt gewoon met de rechtermuisknop op de database klikken en vervolgens Naam wijzigen kiezen.
De naam van een database wijzigen in SQL Server - SQL Server / TSQL-zelfstudie

U zult zie dat de naam van de database u om wijziging zal vragen. Ga je gang en verander het en druk op Enter. De naam van een database wijzigen in SQL Server - SQL Server / TSQL-zelfstudie



De naam van de database wijzigen met TSQL: U kunt TSQL gebruiken om de database in SQL Server te hernoemen.
1) Door Sp_Rename System Stored Procedure te gebruiken We kunnen sp_rename system Stored Procedure gebruiken om de database in de SQL-server te hernoemen. Laten we zeggen dat we TechBrtohersIT willen hernoemen naar TechBrother. We kunnen onderstaand script gebruiken.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Gebruik Alter Database met Modify We kunnen het onderstaande script gebruiken om te hernoemen. In dit voorbeeld hernoem ik TechBrothersIT naar TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Veelvoorkomende fout: Laten we zeggen dat de database door verschillende applicaties wordt gebruikt. u krijgt mogelijk onderstaande foutmelding.
Msg 5030, Level 16, State 2, Line 4
De database kan niet exclusief worden vergrendeld om de bewerking uit te voeren.

In dit geval kunt u kan alle verbindingen beëindigen voordat u het hernoemen-script uitvoert. Het onderstaande script kan worden gebruikt om alle verbindingen in een database te beëindigen. Zorg ervoor dat u samen met uw team en andere teams alle verbindingen op de database verbreekt voor het hernoemen.
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. Postgres en indexen op buitenlandse sleutels en primaire sleutels

  2. verbinding met MySQL-server verbroken tijdens zoekvraag

  3. Toon (lijst) MySQL-databases op Linux via de opdrachtregel

  4. PLSQL JDBC:Hoe krijg ik de laatste rij-ID?