Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да преименувате база данни в SQL Server - SQL Server / TSQL урок, част 26

Сценарий:

Често се сблъскваме със ситуацията, в която трябва да преименуваме базата данни. Помислете за ситуацията, вие работите като разработчик на SQL Server за финансова фирма и те имат името на базата данни TechBrothersIT и биха искали да преименуват на Techbrothers. Трябва да предоставите скриптовете, които могат да се изпълняват в QA, UAT и производствена среда.

Решение:

Преименуване чрез GUI:
Преименуването на база данни е много лесно, можете просто да щракнете с десния бутон върху базата данни и след това да изберете Преименуване.
Как да преименувате база данни в SQL Server - SQL Server / TSQL урок

Ще вижте, че името на базата данни ще ви подкани за промяна. Продължете и го променете и натиснете Enter. Как да преименувате база данни в SQL Server - SQL Server / TSQL урок



Как да преименувате база данни с помощта на TSQL: Можете да използвате TSQL, за да преименувате база данни в SQL Server.
1) Чрез използване на Sp_Rename System Stored ProcedureНие можем да използваме sp_rename System Stored Procedure за преименуване на база данни в SQL сървър. Да кажем, че бихме искали да преименуваме TechBrtohersIT на TechBrother. Можем да използваме скрипта по-долу.
sp_renamedb 'OldDatabaseName','NewDatabaseName'


EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

2) Използвайте Alter Database с Modify Можем да използваме скрипта по-долу, за да преименуваме. В този пример преименувам TechBrothersIT на TechBrothers.
USE master;
GO
ALTER DATABASE TechBrothersIT
Modify Name = TechBrothers ;
GO

Честа грешка: Да кажем, че базата данни се използва от различни приложения. може да получите грешка по-долу.
Съобщение 5030, ниво 16, състояние 2, ред 4
База данни не може да бъде изключително заключена за извършване на операцията.

В този случай вие може да убие всички връзки, преди да стартирате скрипт за преименуване. Скриптът по-долу може да се използва за унищожаване на всички връзки в база данни. Уверете се, че с вашия екип и други екипи, преди да прекратите всички връзки в базата данни за преименуване.
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. Техники за оптимизация на заявки в SQL Server:5 най-добри практики за повишаване на производителността на заявките

  2. Как да документирате вашата база данни на SQL Server

  3. Отстраняване на проблеми при работа с дата и час в SQL Server

  4. Някакъв начин за вмъкване или актуализиране на SQLBulkCopy, ако съществува?

  5. Използване на SQL Server като хранилище за изображения