Ako premenovať databázu SQL Server?

Niekedy musíme zmeniť názov databázy, pretože pôvodný názov bol založený na projekte, ktorý sa stal irelevantným pre údaje uložené v databáze alebo ste predtým dali dočasný názov a teraz ho chcete upraviť. Bez ohľadu na dôvody premenovania databázy v tomto článku prídeme na spôsoby, ako premenovať databázu, aké chyby môžu pri tom nastať a ako ich opraviť.

Ak teda chcete premenovať databázu, musíte postupovať podľa jednej z metód uvedených nižšie. Najskôr musíme vytvoriť databázu, ktorú je potrebné premenovať.

Vytvorenie databázy:

Vyberte ľubovoľnú databázu vo vašom Systém správy servera SQL (SSMS). Ak žiadne nemáte, môžete si ich vytvoriť pomocou tohto postupu.

  1. Kliknite pravým tlačidlom myši na „Databáza“V „Object Explorer“ a vyberte možnosť „Nová databáza“
  2. Na ľavom paneli sa zobrazí okno
  3. vyberte „Všeobecné“ zadajte názov databázy do pravej časti a stlačte „Ok“. Vytvorí sa databáza

Existuje niekoľko spôsobov premenovania databázy na serveri SQL Server, ktoré sú podrobne popísané nižšie spolu s verziami podporovanými ľubovoľnou konkrétnou metódou. Neskôr si tiež rozoberieme chyby, ktoré vzniknú pri premenovaní databázy, a postup ich opravy.

Metóda 1: Použitie možnosti premenovania SSMS na premenovanie databázy servera SQL Server

Toto je najjednoduchší spôsob premenovania databázy. Ak to chcete urobiť, musíte postupovať takto.

  1. Pravým tlačidlom myši kliknite na názov databázy v prehľadávači objektov
  2. Vyberte „Premenovať“, zadajte názov databázy a stlačte „Vstúpiť“

Metóda 2: Použitie SSMS na premenovanie databázy servera SQL

Ďalším najjednoduchším spôsobom, ako premenovať databázu, je premenovať ľubovoľný priečinok v systéme Windows. Takto musíte pokračovať. Kliknutím na databázu ju môžete premenovať, rovnako ako premenovávať priečinky systému Windows.

Metóda 3: Použitie T-SQL na premenovanie databázy servera SQL

Pre SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 a 2017 tento príkaz funguje. Vykonajte nasledujúce vyhlásenie.

ALTER DATABASE [test] MODIFY NAME = [test_cases]

Výstup bude „Bol nastavený názov databázy„ test_cases “.“ Ako je vidieť na obrázku nižšie.

Príkaz T-SQL uvedený nižšie môžete použiť na zmenu názvu databázy, ak používate server SQL Server 2000. S programami SQL 2005, 2008, 2008R2, 2012, 2014, 2016 a 2017 to stále funguje, ale v určitej fáze spoločnosť Microsoft tvrdí, že bude postupne vyradený.

Metóda 4: Pomocou odpojenia a pripojenia premenujte server SQL

Pomocou funkcie odpojenia a pripojenia servera SQL Server je možné najskôr odstrániť databázu a pri opätovnom pripojení databázy jej priradiť iný názov. Na to je možné použiť nasledujúce príkazy T-SQL

Odpojenie databázy vykonaním nasledujúceho kódu:

EXEC sp_detach_db 'test', 'pravda'

Výstup bude taký

Pripojenie databázy.

EXEC sp_attach_db @dbname = N'test ', @ názov súboru1 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test.mdf', @ názov súboru2 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test_log.ldf ';

Výstupom bude:

Používanie SSMS na odpojenie a opätovné pripojenie databáz

To sa dá dosiahnuť aj pomocou SSMS vykonaním týchto krokov.

  1. Pravým tlačidlom myši kliknite na databázu a vyberte „Úloha“ potom kliknite na „Odpojiť“
  2. Teraz kliknite na „Ok“
  3. Teraz pripojte databázu pravým tlačidlom myši na „Databázy“ v „Object Explorer“ a kliknite „Pripojiť“. Zobrazí sa obrazovka, kliknite na Pridať. Zobrazí sa ďalšie okno s názvami databáz, ako je zobrazené nižšie „Test“.
  4. Chceme ho však pridať ako upravený názov databázy „Test_cases“ tak napíš "testovacia situácia" v „Pripojiť ako“ box. Teraz takto. Týmto sa vaša databáza premenuje.

Ďalej si rozoberieme chyby, ktoré môžu vzniknúť pri premenovaní databázy. Na premenovanie databázy budete potrebovať výlučný prístup do databázy, čo zabezpečí, že databáza nebude mať žiadne ďalšie pripojenia k databáze. Ak to tak nie je, môže to viesť k chybám, ako je uvedené nižšie. Chyba môže dokonca vzniknúť, keď omylom otvoríme ďalšie okno s rovnakým názvom databázy, ktoré sa musí premenovať.

Chyby, ktoré sa vyskytnú pri premenovaní databázy pomocou SSMS a vykonaní dotazu:

Tieto nižšie uvedené dve chyby majú dva odlišné pohľady, pretože vznikajú pri premenovaní databázy pomocou dvoch rôznych metód. Chyba 1 vznikne pri premenovaní databázy pomocou SSMS a druhá chyba vznikne pri premenovaní databázy pomocou dotazu. Obe chyby zobrazujú rovnakú správu „Databázu nebolo možné výhradne uzamknúť na vykonanie operácie“, to znamená, že chyba nastane, pretože používateľ nemá výlučný prístup do databázy na premenovanie databázy. Aby sme mohli databázu premenovať, musíme databázu nastaviť na „režim pre jedného používateľa“.

Chyba 1: Chyba nastáva pri premenovaní databázy pomocou SSMS

„Test sa nedá premenovať. (ObjectExplorer)

Ďalšie informácie:

Premenovanie zlyhalo pri teste databázy (Microsoft.SqlServer.Smo)

Pri vykonávaní príkazu alebo dávky Transact-SQL došlo k výnimke.

(Microsoft.SqlServer.ConnectionInfo)

Na vykonanie operácie nebolo možné databázu výlučne uzamknúť. (Microsoft SQL Server, chyba: 5030) “

Chyba 2: Chyba nastáva pri premenovaní databázy pomocou dotazu

„Správa 5030, úroveň 16, štát 2, riadok 2. Databázu nebolo možné výlučne uzamknúť, aby sa mohla operácia vykonať.“

Najskôr uvedieme vyššie uvedené chybové správy, aby sme pochopili, v akom scenári vzniknú a ako ich opraviť.

  1. Kliknite pravým tlačidlom myši na názov databázy z „Object Explorer“
  2. Vyberte premenovanie a zadajte názov databázy a stlačte „Vstúpiť“ ak to funguje dobre, ale ak to nefunguje a výsledkom bude chyba ako je táto „Nie je možné premenovať (ObjectExplorer). Na vykonanie operácie nebolo možné databázu výlučne uzamknúť. (Microsoft SQL Server, chyba: 5030) “ ako je vidieť na obrázku nižšie, potom nemáte výlučný prístup k databáze na jej premenovanie.
  3. Táto chyba znamená, že SQL Server nedovolí premenovať databázu, pokiaľ nie je v „Režim pre jedného používateľa“.
  4. Aby ste mohli databázu premenovať, budete potrebovať výlučný prístup k databáze, aby ste porozumeli tomuto otvoreniu iného okna s dotazom a výberu databázy „Test“
  5. Teraz v prvom okne skúste spustiť nasledujúci kód.
  6. ALTER DATABASE [test] MODIFY NAME = [test_cases]
  7. Bude to však náchylné na takéto chybové hlásenie: „Správa 5030, úroveň 16, štát 2, riadok 2. Databázu nebolo možné výlučne uzamknúť, aby sa mohla operácia vykonať.“

Riešenie:

Toto nakonfiguruje databázu tak, aby vrátila všetky nespracované transakcie a nastavila ju „Režim pre jedného používateľa“ a potom späť do „Režim pre viacerých používateľov“.

  1. Aby sme to napravili, musíme zavrieť všetky ostatné okná, v ktorých sa používa rovnaký názov databázy, alebo do nej nastaviť databázu „Režim pre jedného používateľa“ pomocou nasledujúcich príkazov.
  2. Zmeniť databázovú testovaciu sadu single_user s možnosťou okamžitého vrátenia späť EXEC sp_renamedb 'test', 'test_cases' go zmeniť databázu test_cases set multi_user go
  3. Výstup bude taký: „Nekvalifikované transakcie sa vracajú späť. Odhadované dokončenie vrátenia: 0%. Nekvalifikované transakcie sa vracajú späť. Odhadované dokončenie vrátenia: 100%. Názov databázy „test_cases“ bol nastavený. “

Záver:

Existuje niekoľko spôsobov, ako premenovať databázu. Ak jeden spôsob nefunguje pre vás. Môžete ísť na inú. Je potrebné mať na pamäti jednu vec, že ​​pri zmene názvov databáz pomocou týchto spôsobov stačí databázu premenovať. „Fyzické súbory“ majú stále rovnaké názvy. Ako vidíme na obrázku nižšie, zmenili sme názov databázy z „Test“ do „Test_cases“ ale na fyzickom mieste to zostalo rovnaké.

Najjednoduchším prístupom je teda použiť riešenie 4, ak chcete zmeniť aj názov súboru. Pred opätovným pripojením súborov musíte najskôr zmeniť názov fyzických súborov a po opätovnom pripojení určiť premenované súbory.

Okrem zmeny názvov databáz musíte okrem toho skontrolovať, či sa v kóde vašej aplikácie nenachádzajú odkazy na názov databázy. Môže to byť v rámci servera SQL Server alebo mimo servera SQL Server.