Как переименовать базу данных sql

Русские Блоги

В MS SQL, если вы хотите изменить имя определенной базы данных, вы можете сделать это следующими способами.

Метод 1. Используйте системную хранимую процедуру SP_RENAMEDB для достижения.

Синтаксис: sp_renamedb [@dbname =] ‘old_name’, [@newname =] ‘new_name’

Пример: мне нужно изменить имя базы данных Test_1 на Test

Иногда при выполнении сценария выдается следующая ошибка:

Сообщение 5030, уровень 16, состояние 2, строка 1

База данных не может быть заблокирована монопольной блокировкой для выполнения этой операции.

Когда это происходит, основная причина заключается в том, что к базе данных подключаются другие программы или пользователи. Вы должны убедиться, что ни один из пользователей не использует базу данных. Вы можете установить базу данных в однопользовательский режим. Найдите параметр «Ограниченный доступ» в свойствах базы данных — выбор «Соединение», выберите параметр SIGLE_USER.Затем выполните указанную выше инструкцию, чтобы изменить имя базы данных.

clip_image002[4]

Конечно, вы также можете использовать сценарий для решения этой проблемы, запросив, какие сеансы в настоящее время подключены к этой базе данных, если нет записи, вы можете напрямую выполнить вышеуказанный сценарий.

В противном случае выполните команду KILL, чтобы убить эти процессы сеанса.

Следующий сценарий может лучше справиться с указанными выше проблемами. Вам не нужно выполнять слишком много дополнительных операций, просто используйте сценарий для выполнения задачи.

Как переименовать базу данных SQL Server?

Иногда нам нужно изменить имя базы данных, потому что исходное имя было основано на проекте, который стал нерелевантным для данных, хранящихся в базе данных, или вы дали временное имя раньше, а теперь хотите его изменить. Независимо от причин переименования базы данных, в этой статье мы предложим способы переименования базы данных, какие ошибки могут возникнуть при этом и как их исправить.

Итак, чтобы переименовать базу данных, вам необходимо воспользоваться одним из методов, описанных ниже. Прежде всего, мы должны создать базу данных, которую нужно переименовать.

Создание базы данных:

Выберите любую базу данных в вашей системе управления SQL Server (SSMS) . Если у вас его нет, вы можете создать его, выполнив эту процедуру.

  1. Щелкните правой кнопкой мыши « База данных » в «Обозревателе объектов» и выберите «Новая база данных».
  2. На левой панели появится окно.
  3. выберите имя базы данных типа «Общие» в правой панели и нажмите «ОК» . База данных будет создана

Существует несколько методов переименования базы данных в SQL Server, которые подробно обсуждаются ниже вместе с версиями, поддерживаемыми любым конкретным методом. Позже мы также обсудим ошибки, возникающие при переименовании базы данных, и порядок их исправления.

Метод 1. Использование параметра переименования SSMS для переименования базы данных SQL Server.

Это самый простой способ переименовать базу данных. Для этого нужно поступить следующим образом.

  1. Щелкните правой кнопкой мыши имя базы данных в проводнике объектов.
  2. Выберите «переименовать» , введите имя базы данных и нажмите «Ввод».

Метод 2: использование SSMS для переименования базы данных SQL Server

Еще один простейший способ переименовать базу данных точно так же, как переименование любой папки в Windows. Для этого вам нужно продолжать так же. Щелкните базу данных, чтобы переименовать ее, как при переименовании папок Windows.

Метод 3: использование T-SQL для переименования базы данных SQL Server

Для SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 и 2017 эта команда работает. Выполните следующую инструкцию.

Результатом будет «Установлено имя базы данных test_cases». Как видно на рисунке ниже.

Вы можете использовать команду T-SQL ниже, чтобы изменить имя базы данных, если вы используете SQL Server 2000. С SQL 2005, 2008, 2008R2, 2012, 2014, 2016 и 2017 это все еще работает, но на некотором этапе Microsoft утверждает, что он будет прекращен.

Метод 4: с помощью отсоединения и присоединения переименуйте SQL Server

С помощью функции отсоединения и присоединения SQL Server можно сначала удалить базу данных и присвоить базе данных другое имя при повторном подключении базы данных. Для этого можно использовать следующие команды T-SQL.

Отсоединение базы данных путем выполнения следующего кода:

Результат будет таким

Прикрепление базы данных.

Использование SSMS для отключения и повторного подключения баз данных

Этого также можно достичь с помощью SSMS, выполнив следующие действия.

  1. Щелкните правой кнопкой мыши базу данных, выберите «задача», затем нажмите «Отсоединить».
  2. Теперь нажмите «ОК»
  3. Теперь, чтобы присоединить базу данных, щелкните правой кнопкой мыши «Базы данных» в «Обозревателе объектов» и нажмите «Присоединить» . Появится экран, нажмите Добавить. Другое окно появится с именами баз данных в нем, как показано ниже, выберите «тест».
  4. Но мы хотим добавить его как измененное имя базы данных «test_cases», поэтому введите «test_case» в поле «Присоединить как» . Теперь вот так. Это переименует вашу базу данных.

Кроме того, мы обсудим ошибки, которые могут возникнуть при переименовании базы данных. Вам понадобится монопольный доступ к базе данных для переименования базы данных, что гарантирует, что база данных не имеет других подключений к базе данных. Но если это не так, это может привести к ошибкам, как показано ниже. Ошибка может возникнуть даже тогда, когда мы случайно откроем другое окно с тем же именем базы данных, которое необходимо переименовать.

Ошибки, возникающие при переименовании базы данных через SSMS и при выполнении запроса:

Эти нижеупомянутые две ошибки имеют два разных представления, потому что они возникают при переименовании базы данных с использованием двух разных методов. Ошибка 1 возникает при переименовании базы данных с помощью SSMS, а вторая ошибка возникает при переименовании базы данных с помощью запроса. Обе ошибки показывают одно и то же сообщение «База данных не может быть заблокирована исключительно для выполнения операции», что означает, что ошибка возникает из-за того, что пользователю не предоставляется монопольный доступ к базе данных для переименования базы данных. Итак, чтобы переименовать базу данных, нам нужно установить базу данных в « однопользовательский режим ».

Ошибка 1: ошибка возникает при переименовании базы данных через SSMS

«Невозможно переименовать тест. (ObjectExplorer)

Дополнительная информация:

Ошибка переименования для теста базы данных (Microsoft.SqlServer.Smo)

Исключение при выполнении инструкции или пакета Transact-SQL.

(Microsoft.SqlServer.ConnectionInfo)

The database could not be exclusively locked to perform the operation. (Microsoft SQL Server, Error: 5030)”

Error 2: Error arises while renaming the database using query

“Msg 5030, Level 16, State 2, Line 2. The database could not be exclusively locked to perform the operation.”

First of all, we will reproduce the above-mentioned error messages for understanding that in which scenario they arise and how to fix them.

  1. Right-click database name from “Object Explorer”
  2. Select rename and type database name and press “enter” if it works its fine but if it does not work and results in an error like this “Unable to rename (ObjectExplorer). The database could not be exclusively locked to perform the operation. (Microsoft SQL Server, Error: 5030)” as seen in the figure below, then you don’t have exclusive access to the database to rename a database.
  3. This error means that the SQL Server will not allow the database to be renamed until unless it is in “single-user mode”.
  4. So you will need exclusive access to the database to rename a database, to understand this open another query window and select database “test”
  5. Now in the first window try to execute the following code.
  6. But this will prone to an error message like this: “Msg 5030, Level 16, State 2, Line 2. The database could not be exclusively locked to perform the operation.”

Solution:

This will configure the database to roll back any pending transactions and set it in “single user mode” and then back into “multi-user mode”.

  1. To fix this we need to close all other windows in which the same database name is being used or to set the database in “single user mode” by using the following commands.
  2. The output will be like this: “Nonqualified transactions are being rolled back. Estimated rollback completion: 0%.Nonqualified transactions are being rolled back. Estimated rollback completion: 100%.The database name ‘test_cases’ has been set.”

Conclusion:

These are multiple ways to rename the database. If one way is not working for you. You can go to another one. One thing that should be kept in mind that changing database names using these ways just rename the database. The “physical files” still have the same names. As we can see in the figure below we have changed the database name from “test” to “test_cases” but in the physical location, it remained the same.

Итак, самый простой подход — использовать решение 4, если вы также хотите изменить имя файла. Вы должны сначала изменить имена физических файлов перед повторным подключением файлов, а затем указать переименованные файлы при повторном подключении.

Более того, помимо изменения имен баз данных, вам также необходимо проверить, есть ли в коде вашего приложения ссылки на имя базы данных. Это может быть как внутри SQL Server, так и вне SQL Server.

How to rename a MySQL database?

The MySQL online manual has said about the RENAME DATABASE command (this documentation page has been removed by Oracle some time ago):

This statement was added in MySQL 5.1.7 but was found to be dangerous and was removed in MySQL 5.1.23.

So, how to proceed? The rationale: We started with a code name for the project and want the database name now to reflect the definitive name of the project.

6 Answers 6

From this blog post by Ilan Hazan:

In MySQL there is no support for database renaming. In order to rename a MySQL database you can do one of the following:

Create new database and rename all tables in the old database to be in the new database:

In Linux shell, use mysqldump to back up the old database, then restore the dumped database under a new name using the MySQL utility. Finally, use the drop database command to drop the old database. This option can perform badly for large database.

Write a simple Linux script (my favorite solution)

If all your tables are MyISAM, you can rename the old database folder name:

Rename mysql database?

How can I rename the MySQL database name using query?

I tried rename database via phpmyadmin and getting the following error,

Muthu Kumaran

9 Answers 9

In phpmyadmin you can just click on your database, then go to the Operations tab which lets you rename it.

This statement was added in MySQL 5.1.7 but was found to be dangerous and was removed in MySQL 5.1.23. It was intended to enable upgrading pre-5.1 databases to use the encoding implemented in 5.1 for mapping database names to database directory names (see Section 9.2.3, “Mapping of Identifiers to File Names”). However, use of this statement could result in loss of database contents, which is why it was removed. Do not use RENAME DATABASE in earlier versions in which it is present.

You can import all data into a new database then delete the old one.

It is also possible to use the RENAME TABLE statement using same from/to table name but different from/to database. There are a few catches.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *