Hoe kan ik een SQL Server-database hernoemen?

Soms moeten we de databasenaam wijzigen omdat de oorspronkelijke naam was gebaseerd op het project dat irrelevant is geworden voor de gegevens die in de database zijn opgeslagen of omdat u eerder een tijdelijke naam had opgegeven en nu wilt u deze wijzigen. Ongeacht de redenen achter het hernoemen van de database, zullen we in dit artikel manieren bedenken om de database een andere naam te geven, welke fout er kan optreden en hoe deze te verhelpen.

Dus om de database te hernoemen, moet u een van de onderstaande methoden volgen. Allereerst moeten we een database aanmaken die hernoemd moet worden.

Database aanmaken:

Selecteer een database in uw SQL Server Management System (SSMS). Als u er nog geen heeft, kunt u er een maken door deze procedure te volgen.

  1. Klik met de rechtermuisknop op “Database" in de "Objectverkenner" en selecteer optie "Nieuwe database"
  2. Er verschijnt een venster in het linkerdeelvenster
  3. selecteer "Algemeen" typ databasenaam in de rechterpan en druk op "OK". De database wordt aangemaakt

Er zijn meerdere methoden om de naam van een database in SQL Server te wijzigen, die hieronder in detail worden besproken, samen met versies die door een specifieke methode worden ondersteund. Later zullen we ook fouten bespreken die optreden tijdens het hernoemen van de database, en de procedure om deze op te lossen.

Methode 1: de optie SSMS hernoemen gebruiken om de naam van de SQL Server-database te wijzigen

Dit is de eenvoudigste manier om de naam van een database te wijzigen. U moet hiervoor zo te werk gaan.

  1. Klik met de rechtermuisknop op de databasenaam vanuit de objectverkenner
  2. Selecteer "Hernoemen", typ databasenaam en druk op "Enter"

Methode 2: SSMS gebruiken om de naam van de SQL Server-database te wijzigen

Nog een eenvoudigste manier om een ​​database te hernoemen, net zoals het hernoemen van een map in de vensters. U moet op deze manier doorgaan om dit te doen. Klik op de database om deze te hernoemen, net zoals het hernoemen van Windows-mappen.

Methode 3: T-SQL gebruiken om de naam van de SQL Server-database te wijzigen

Voor SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 en 2017 werkt deze opdracht. Voer de volgende instructie uit.

ALTER DATABASE [test] MODIFY NAME = [test_cases]

De uitvoer zal zijn: "De databasenaam‘ test_cases ’is ingesteld." Zoals te zien in de onderstaande afbeelding.

U kunt de onderstaande T-SQL-opdracht gebruiken om de naam van de database te wijzigen als u SQL Server 2000 gebruikt. Met SQL 2005, 2008, 2008R2, 2012, 2014, 2016 en 2017 werkt dit nog steeds, maar op een bepaald moment werkt Microsoft beweert dat het zal worden afgebouwd.

Methode 4: Gebruik ontkoppelen en koppelen om de naam van de SQL Server te wijzigen

Door de functie voor loskoppelen en koppelen van SQL Server te gebruiken, kunt u eerst de database verwijderen en de database een andere naam geven wanneer u de database opnieuw koppelt. Hiervoor kunnen de volgende T-SQL-opdrachten worden gebruikt

De database loskoppelen door de volgende code uit te voeren:

EXEC sp_detach_db 'test', 'true'

De output zal als volgt zijn

Bijvoegen van de database.

EXEC sp_attach_db @dbname = N'test ', @ filename1 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test.mdf', @ filename2 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test_log.ldf ';

De output zal zijn:

SSMS gebruiken om databases los te koppelen en opnieuw te koppelen

Dit kan ook worden bereikt met SSMS door deze stappen te volgen.

  1. Klik met de rechtermuisknop op de database, selecteer "taak" klik vervolgens op "Loskoppelen"
  2. Klik nu op "OK"
  3. Klik nu met de rechtermuisknop op om de database toe te voegen "Databases" in "Objectverkenner" en klik "Vastmaken". Er verschijnt een scherm, klik op Toevoegen. Een ander venster zal verschijnen met databasenamen, zoals hieronder getoond, selecteer "test".
  4. Maar we willen het toevoegen als een gewijzigde databasenaam "Testcases" dus typ "testcase" in "Bijvoegen als" doos. Nu zo. Dit zal uw database hernoemen.

Verder zullen we fouten bespreken die kunnen optreden bij het hernoemen van de database. U hebt exclusieve toegang tot de database nodig om de database te hernoemen, zodat de database geen andere databaseverbindingen heeft. Maar als dit niet het geval is, kan dit leiden tot fouten, zoals hieronder wordt weergegeven. De fout kan zelfs optreden als we per ongeluk een ander venster openen met dezelfde databasenaam die moet worden hernoemd.

Fouten die optreden bij het hernoemen van de database via SSMS en door het uitvoeren van de query:

Deze twee hieronder genoemde fouten hebben twee verschillende weergaven omdat ze optreden bij het hernoemen van de database met behulp van twee verschillende methoden. Fout 1 doet zich voor bij het hernoemen van de database met behulp van SSMS en de tweede fout doet zich voor bij het hernoemen van de database met behulp van query. Beide fouten tonen hetzelfde bericht "De database kon niet exclusief worden vergrendeld om de bewerking uit te voeren", dat betekent dat de fout zich voordoet omdat de gebruiker geen exclusieve toegang tot de database krijgt om een ​​database te hernoemen. Dus om de database te hernoemen, moeten we de database instellen op “modus voor één gebruiker“.

Fout 1: Er treedt een fout op bij het hernoemen van de database via SSMS

'Kan test niet hernoemen. (ObjectExplorer)
Extra informatie:
Hernoemen mislukt voor databasetest (Microsoft.SqlServer.Smo)
Er is een uitzondering opgetreden bij het uitvoeren van een Transact-SQL-instructie of batch.
(Microsoft.SqlServer.ConnectionInfo)
De database kan niet exclusief worden vergrendeld om de bewerking uit te voeren. (Microsoft SQL Server, fout: 5030) "

Fout 2: Er treedt een fout op bij het hernoemen van de database met behulp van een query

"Msg 5030, Level 16, State 2, Line 2. De database kan niet exclusief worden vergrendeld om de bewerking uit te voeren."

Allereerst zullen we de bovengenoemde foutmeldingen reproduceren om te begrijpen in welk scenario ze zich voordoen en hoe ze kunnen worden verholpen.

  1. Klik met de rechtermuisknop op databasenaam van "Objectverkenner"
  2. Selecteer hernoemen en typ databasenaam en druk op "Enter" als het werkt, is het prima, maar als het niet werkt en resulteert in een fout als deze 'Kan naam niet wijzigen (ObjectExplorer). De database kan niet exclusief worden vergrendeld om de bewerking uit te voeren. (Microsoft SQL Server, fout: 5030)” zoals u kunt zien in de onderstaande afbeelding, heeft u geen exclusieve toegang tot de database om de naam van een database te wijzigen.
  3. Deze fout betekent dat de SQL Server de database pas hernoemt als deze zich in "Modus voor één gebruiker".
  4. U hebt dus exclusieve toegang tot de database nodig om de naam van een database te wijzigen, om dit te begrijpen opent u een ander zoekvenster en selecteert u de database "test"
  5. Probeer nu in het eerste venster de volgende code uit te voeren.
  6. ALTER DATABASE [test] MODIFY NAME = [test_cases]
  7. Maar dit zal vatbaar zijn voor een foutmelding als deze: "Msg 5030, niveau 16, staat 2, regel 2. De database kan niet exclusief worden vergrendeld om de bewerking uit te voeren."

Oplossing:

Hiermee wordt de database geconfigureerd om alle lopende transacties terug te draaien en in te stellen "Modus voor één gebruiker" en dan terug naar "Multi-user modus".

  1. Om dit op te lossen, moeten we alle andere vensters sluiten waarin dezelfde databasenaam wordt gebruikt of om de database in te stellen "Modus voor één gebruiker" door de volgende opdrachten te gebruiken.
  2. Wijzig database testset single_user met rollback onmiddellijk ga EXEC sp_renamedb 'test', 'test_cases' ga alter database test_cases set multi_user go
  3. De output zal als volgt zijn: “Niet-gekwalificeerde transacties worden teruggedraaid. Geschatte voltooiing van het terugdraaien: 0%. Niet-gekwalificeerde transacties worden teruggedraaid. Geschatte voltooiing van het terugdraaien: 100%. De databasenaam ‘test_cases’ is ingesteld. "

Conclusie:

Dit zijn meerdere manieren om de database een andere naam te geven. Als een manier niet voor u werkt. Je kunt naar een andere gaan. Een ding dat in gedachten moet worden gehouden, is dat het wijzigen van databasenamen op deze manieren alleen maar de naam van de database wijzigt. De "fysieke bestanden" hebben nog steeds dezelfde naam. Zoals we in de onderstaande afbeelding kunnen zien, hebben we de databasenaam gewijzigd van "test" naar "Testcases" maar op de fysieke locatie bleef het hetzelfde.

Dus de eenvoudigste benadering is om oplossing 4 te gebruiken als u ook de bestandsnaam wilt wijzigen. U moet eerst de naam van de fysieke bestanden wijzigen voordat u de bestanden opnieuw koppelt en vervolgens de hernoemde bestanden specificeren wanneer u de bestanden opnieuw bevestigt.

Bovendien moet u naast het wijzigen van de namen van de databases, ook controleren of er in uw applicatiecode verwijzingen naar de databasenaam voorkomen. Dit kan zowel binnen SQL Server als buiten SQL Server zijn.

Facebook Twitter Google Plus Pinterest