Переименование базы данных

Применимо к:База данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure

В этой статье описывается, как переименовать определяемую пользователем базу данных в базе данных SQL Server или Azure SQL с помощью SQL Server Management Studio или Transact-SQL. Имя базы данных может содержать все символы, соответствующие правилам для идентификаторов.

Примечание

Чтобы переименовать базу данных в Azure Synapse Analytics или Parallel Data Warehouse, используйте инструкцию RENAME (Transact-SQL).

ограничения

  • Системные базы данных не могут быть переименованы.
  • Имя базы данных невозможно изменить, пока другие пользователи обращаются к этой базе данных.
    • Используйте Монитор активности SQL Server Management Studio, чтобы найти другие подключения к базе данных, и закройте их. Дополнительные сведения см. в разделе Открытие Монитора активности в SQL Server Management Studio (SSMS).
    • В SQL Server можно установить для базы данных однопользовательский режим, чтобы закрыть все открытые соединения. Дополнительные сведения см. в разделе Установка однопользовательского режима базы данных.
    • В базе данных SQL Azure необходимо убедиться, что отсутствуют открытые подключения других пользователей к базе данных, которую требуется переименовать.
  • При переименовании базы данных физические и логические имена файлов базы данных на диске не изменяются. Дополнительные сведения см. в статье Файлы и группы файлов базы данных.
  • Невозможно переименовать базу данных Azure SQL, настроенную в активном отношении георепликации.

Разрешения

Необходимо разрешение ALTER на базу данных.

Использование SQL Server Management Studio

Чтобы переименовать базу данных SQL Server или SQL Azure с помощью SQL Server Management Studio, выполните следующие действия.

  1. В среде SQL Server Management Studio выберите элемент Обозреватель объектов. Чтобы открыть обозреватель объектов, нажмите клавишу F8. Либо в главном меню щелкните Вид и выберите пункт Обозреватель объектов:

  2. В обозревателе объектов подключитесь к экземпляру SQL Server и разверните его.

  3. Убедитесь, что отсутствуют открытые подключения к базе данных. Если используется SQL Server, можно перевести базу данных в однопользовательский режим, чтобы закрыть все открытые подключения и запретить подключение других пользователей, пока производится изменение имени этой базы данных.

  4. В обозревателе объектов разверните узел Базы данных, щелкните правой кнопкой мыши базу данных, которую необходимо переименовать, а затем выберите Переименовать.

  5. Введите новое имя базы данных и нажмите кнопку ОК.

  6. Если эта база данных была базой данных по умолчанию, см. раздел Сброс базы данных по умолчанию после переименования.

  7. Обновите список баз данных в обозревателе объектов.

Использование Transact-SQL

Переименование базы данных SQL Server путем перевода ее в однопользовательский режим

Выполните следующие действия, чтобы переименовать базу данных SQL Server с помощью T-SQL в SQL Server Management Studio, включая действия по переводу базы данных в однопользовательский режим и возврат ее в многопользовательский режим после переименования.

  1. Подключитесь к базе данных master для своего экземпляра.
  2. Откройте окно запроса.
  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере имя базы данных MyTestDatabase изменяется на MyTestDatabaseCopy.

Предупреждение

Чтобы быстро получить монопольный доступ, в примере кода используется параметр завершения WITH ROLLBACK IMMEDIATE. Произойдет откат всех незавершенных транзакций, а любые другие соединения с базой данных MyTestDatabase будут немедленно разорваны.

USE master;  
GO  
ALTER DATABASE MyTestDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy;
GO  
ALTER DATABASE MyTestDatabaseCopy SET MULTI_USER;
GO
  1. Кроме того, если эта база данных была базой данных по умолчанию, см. раздел Сброс базы данных по умолчанию после переименования.

Переименование базы данных SQL Azure

Выполните следующие действия, чтобы переименовать базу данных SQL Azure с помощью T-SQL в SQL Server Management Studio.

  1. Подключитесь к базе данных master для своего экземпляра.

  2. Откройте окно запроса.

  3. Убедитесь, что больше никто не использует эту базу данных.

  4. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере имя базы данных MyTestDatabase изменяется на MyTestDatabaseCopy.

    ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy;
    

Резервное копирование после переименования базы данных

После переименования базы данных в SQL Server выполните резервное копирование базы данных master. В базе данных SQL Azure это не требуется, так как резервное копирование выполняется автоматически.

Сброс базы данных по умолчанию после переименования

Если вы переименовываете базу данных, которая была задана в качестве базы данных по умолчанию для имени входа SQL Server, может возникнуть ошибка 4064, Cannot open user default database. Используйте следующую команду, чтобы установить переименованную базу данных в качестве базы данных по умолчанию:

USE [master]
GO
ALTER LOGIN [login] WITH DEFAULT_DATABASE=[new-database-name];
GO

Следующие шаги