Zmienianie nazwy bazy danych
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
W tym artykule opisano sposób zmiany nazwy bazy danych zdefiniowanej przez użytkownika w programie SQL Server, usłudze Azure SQL Database lub usłudze Azure SQL Managed Instance przy użyciu programu SQL Server Management Studio (SSMS) lub Transact-SQL (T-SQL). Nazwa bazy danych może zawierać dowolne znaki zgodne z regułami dotyczącymi identyfikatorów.
Uwaga
Aby zmienić nazwę bazy danych w usłudze Azure Synapse Analytics lub Parallel Data Warehouse, użyj instrukcji RENAME.
Ograniczenia
Nie można zmienić nazwy systemowych baz danych.
Nie można zmienić nazwy bazy danych, gdy inni użytkownicy uzyskują dostęp do bazy danych.
Użyj monitora aktywności programu SSMS, aby znaleźć inne połączenia z bazą danych i zamknąć je. Aby uzyskać więcej informacji, zobacz Open Activity Monitor in SQL Server Management Studio (SSMS).
W programie SQL Server można ustawić bazę danych w trybie pojedynczego użytkownika, aby zamknąć wszystkie otwarte połączenia. Aby uzyskać więcej informacji, zobacz ustawić bazę danych na tryb pojedynczego użytkownika.
W usłudze Azure SQL Database musisz upewnić się, że żadni inni użytkownicy nie mają otwartego połączenia z bazą danych, która ma zostać zmieniona.
Zmiana nazwy bazy danych nie powoduje zmiany fizycznej nazwy plików bazy danych na dysku ani nazw logicznych plików. Aby uzyskać więcej informacji, zobacz Database Files and Filegroups.
Nie można zmienić nazwy bazy danych Azure SQL Database skonfigurowanej w relacji aktywnej replikacji geograficznej.
Uprawnienia
Wymaga uprawnienia ALTER
na bazie danych.
Korzystanie z programu SQL Server Management Studio (SSMS)
Wykonaj poniższe kroki, aby zmienić nazwę programu SQL Server lub bazy danych Azure SQL Database przy użyciu programu SSMS.
W programie SSMS wybierz pozycję Eksplorator obiektów. Aby otworzyć Eksplorator obiektów, naciśnij F8. Lub w górnym menu wybierz Widok>Eksplorator obiektów:
W Eksplorator obiektówpołącz się z wystąpieniem programu SQL Server, a następnie rozwiń to wystąpienie.
Upewnij się, że nie ma otwartych połączeń z bazą danych. Jeśli używasz programu SQL Server, możesz ustawić bazę danych na tryb pojedynczego użytkownika, aby zamknąć wszystkie otwarte połączenia i uniemożliwić innym użytkownikom nawiązywanie połączenia podczas zmieniania nazwy bazy danych.
W Eksploratorze obiektów rozwiń węzeł Bazy danych, kliknij prawym przyciskiem myszy bazę danych, której nazwę chcesz zmienić, a następnie wybierz pozycję Zmień nazwę.
Wprowadź nową nazwę bazy danych, a następnie wybierz pozycję OK
Jeśli baza danych była domyślną bazą danych, zobacz Resetuj domyślną bazę danych po zmianie nazwy.
Odśwież listę baz danych w Eksploratorze obiektów.
Korzystanie z Transact-SQL
Zmienianie nazwy bazy danych programu SQL Server przez umieszczenie jej w trybie pojedynczego użytkownika
Wykonaj poniższe kroki, aby zmienić nazwę bazy danych programu SQL Server przy użyciu języka T-SQL w programie SSMS, w tym kroki umieszczania bazy danych w trybie pojedynczego użytkownika. Po zmianie nazwy ten przykład umieszcza bazę danych z powrotem w trybie wielu użytkowników.
Nawiąż połączenie z bazą danych
master
dla wystąpienia.Otwórz okno zapytania.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. Ten przykład zmienia nazwę bazy danych
MyTestDatabase
naMyTestDatabaseCopy
.Ostrzeżenie
Aby szybko uzyskać wyłączny dostęp, przykładowy kod używa opcji zakończenia
WITH ROLLBACK IMMEDIATE
. W tym przypadku wszystkie niekompletne transakcje zostaną wycofane, a wszystkie inne połączenia z bazą danychMyTestDatabase
zostaną natychmiast rozłączone.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
Opcjonalnie, jeśli baza danych była domyślną bazą danych, zobacz Resetuj domyślną bazę danych po zmianie nazwy.
Zmienianie nazwy bazy danych usługi Azure SQL Database
Wykonaj poniższe kroki, aby zmienić nazwę bazy danych Azure SQL Database przy użyciu języka T-SQL w programie SQL Server Management Studio.
Nawiąż połączenie z bazą danych
master
dla Twojego wystąpienia.Otwórz okno zapytania.
Upewnij się, że nikt nie korzysta z bazy danych.
Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj. Ten przykład zmienia nazwę bazy danych
MyTestDatabase
naMyTestDatabaseCopy
.ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy;
Tworzenie kopii zapasowej po zmianie nazwy bazy danych
Po zmianie nazwy bazy danych w programie SQL Server utwórz kopię zapasową bazy danych master
. W usłudze Azure SQL Database ten proces nie jest wymagany, ponieważ kopie zapasowe są wykonywane automatycznie.
Resetowanie domyślnej bazy danych po zmianie nazwy
Jeśli baza danych, którą zmieniasz, została ustawiona jako domyślna baza danych logowania programu SQL Server, może wystąpić błąd 4064, Can't open user default database
. Użyj następującego polecenia, aby zmienić wartość domyślną na zmienioną nazwę bazy danych:
USE [master]
GO
ALTER LOGIN [login] WITH DEFAULT_DATABASE=[new-database-name];
GO