Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zmienić nazwę bazy danych w SQL Server — samouczek SQL Server / TSQL część 26

Scenariusz:

Często spotykamy się z sytuacją, w której musimy zmienić nazwę bazy danych. Pomyśl o sytuacji, pracujesz jako programista SQL Server dla firmy finansowej i mają nazwę bazy danych TechBrothersIT i chcieliby zmienić nazwę na Techbrothers. Musisz dostarczyć skrypty, które można uruchomić w środowisku QA, UAT i produkcyjnym.

Rozwiązanie:

Zmiana nazwy przez GUI:
Zmiana nazwy bazy danych jest bardzo łatwa, wystarczy kliknąć prawym przyciskiem myszy bazę danych, a następnie wybrać opcję Zmień nazwę.
Jak zmienić nazwę bazy danych w SQL Server - SQL Server / Samouczek TSQL

zobacz, że nazwa bazy danych poprosi Cię o zmianę. Śmiało, zmień to i naciśnij Enter. Jak zmienić nazwę bazy danych w programie SQL Server — samouczek dotyczący SQL Server / TSQL



Jak zmienić nazwę bazy danych za pomocą TSQL: Możesz użyć TSQL do zmiany nazwy bazy danych w SQL Server.
1) Używając procedury składowanej systemu Sp_Rename Możemy użyć procedury składowanej systemu sp_rename do zmiany nazwy bazy danych na serwerze SQL. Załóżmy, że chcielibyśmy zmienić nazwę TechBrtohersIT na TechBrother. Możemy użyć poniższego skryptu.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Użyj Alter Database z Modyfikacją Możemy użyć poniższego skryptu do zmiany nazwy. W tym przykładzie zmieniam nazwę TechBrothersIT na TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Typowy błąd: Załóżmy, że baza danych jest używana przez różne aplikacje. może pojawić się poniżej błędu.
Msg 5030, Poziom 16, Stan 2, Wiersz 4
Baza danych nie może być zablokowana wyłącznie w celu wykonania operacji.

W tym przypadku może zabić wszystkie połączenia przed uruchomieniem skryptu zmiany nazwy. Poniższy skrypt może zostać użyty do zabicia wszystkich połączeń w bazie danych. Upewnij się ze swoim zespołem i innymi zespołami, zanim zabijesz wszystkie połączenia w bazie danych w celu zmiany nazwy.
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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz SQL Server z SugarCRM

  2. Wydajność serwera SQL TOP IO Query -1

  3. Jak przekonwertować kolumnę znacznika czasu programu SQL Server na format daty i godziny?

  4. Jak zwrócić listę zdarzeń wyzwalających w SQL Server

  5. Korzystanie z alertów i operatorów w SQL Server