Πώς να μετονομάσετε μια βάση δεδομένων διακομιστή SQL;

Μερικές φορές πρέπει να αλλάξουμε το όνομα της βάσης δεδομένων επειδή το αρχικό όνομα βασίστηκε στο έργο που έχει καταστεί άσχετο με τα δεδομένα που είναι αποθηκευμένα στη βάση δεδομένων ή είχατε δώσει προσωρινά το όνομα πριν και τώρα θέλετε να το τροποποιήσετε. Ανεξάρτητα από τους λόγους πίσω από τη μετονομασία της βάσης δεδομένων, σε αυτό το άρθρο, θα βρούμε τρόπους για το πώς να μετονομάσετε τη βάση δεδομένων, ποιο σφάλμα μπορεί να προκύψει ενώ το κάνετε και πώς να τα διορθώσετε.

Επομένως, για να μετονομάσετε τη βάση δεδομένων, πρέπει να ακολουθήσετε μία από τις μεθόδους που αναφέρονται παρακάτω. Πρώτα απ 'όλα, πρέπει να δημιουργήσουμε μια βάση δεδομένων που πρέπει να μετονομαστεί.

Δημιουργία βάσης δεδομένων:

Επιλέξτε οποιαδήποτε βάση δεδομένων στο δικό σας Σύστημα διαχείρισης διακομιστή SQL (SSMS). Εάν δεν έχετε, μπορείτε να δημιουργήσετε ένα ακολουθώντας αυτήν τη διαδικασία.

  1. Κάντε δεξί κλικ στο "Βάση δεδομένων" στο "Εξερεύνηση αντικειμένων" και επιλέξτε την επιλογή "Νέα βάση δεδομένων"
  2. Θα εμφανιστεί ένα παράθυρο στο αριστερό παράθυρο
  3. επιλέγω "Γενικός" πληκτρολογήστε όνομα βάσης δεδομένων στο δεξί τηγάνι και πατήστε "Εντάξει". Η βάση δεδομένων θα δημιουργηθεί

Υπάρχουν πολλές μέθοδοι για να μετονομάσετε μια βάση δεδομένων στον SQL Server, οι οποίες συζητούνται παρακάτω λεπτομερώς μαζί με εκδόσεις που υποστηρίζονται από οποιαδήποτε συγκεκριμένη μέθοδο. Αργότερα, θα συζητήσουμε επίσης σφάλματα που προκύπτουν κατά τη μετονομασία της βάσης δεδομένων και τη διαδικασία διόρθωσής τους.

Μέθοδος 1: Χρησιμοποιώντας την επιλογή μετονομασίας SSMS για να μετονομάσετε τη βάση δεδομένων του SQL Server

Αυτός είναι ο απλούστερος τρόπος να μετονομάσετε μια βάση δεδομένων. Πρέπει να προχωρήσετε έτσι για να το κάνετε.

  1. Κάντε δεξί κλικ στο όνομα της βάσης δεδομένων από το αντικείμενο explorer
  2. Επιλέγω "μετονομάζω", πληκτρολογήστε όνομα βάσης δεδομένων και πατήστε "εισαγω"

Μέθοδος 2: Χρήση SSMS για τη μετονομασία της βάσης δεδομένων διακομιστή SQL

Ένας άλλος απλούστερος τρόπος για να μετονομάσετε μια βάση δεδομένων ακριβώς όπως μετονομασία οποιουδήποτε φακέλου στα παράθυρα. Πρέπει να συνεχίσετε έτσι για να το κάνετε. Κάντε κλικ στη βάση δεδομένων για να τη μετονομάσετε, όπως μετονομασία φακέλων παραθύρων.

Μέθοδος 3: Χρήση του T-SQL για τη μετονομασία της βάσης δεδομένων διακομιστή SQL

Για τον SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 και 2017, αυτή η εντολή λειτουργεί. Εκτελέστε την ακόλουθη δήλωση.

ALTER DATABASE [test] ΟΝΟΜΑ ΤΡΟΠΟΠΟΙΗΣΗΣ = [test_cases]

Η έξοδος θα είναι "Το όνομα της βάσης δεδομένων" test_cases "έχει οριστεί." Όπως φαίνεται στο παρακάτω σχήμα.

Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή T-SQL για να αλλάξετε το όνομα της βάσης δεδομένων εάν χρησιμοποιείτε τον SQL Server 2000. Με τον SQL 2005, 2008, 2008R2, 2012, 2014, 2016 και 2017, αυτό εξακολουθεί να λειτουργεί, αλλά σε κάποιο στάδιο, η Microsoft ισχυρίζεται ότι θα καταργηθεί σταδιακά.

Μέθοδος 4: Χρήση αποσύνδεσης και επισύναψης μετονομασίας του SQL Server

Η χρήση της δυνατότητας αποσύνδεσης και επισύναψης του SQL Server μπορεί να χρησιμοποιηθεί για να αφαιρέσετε πρώτα τη βάση δεδομένων και να εκχωρήσετε στη βάση δεδομένων διαφορετικό όνομα όταν επισυνάψετε ξανά τη βάση δεδομένων. Οι ακόλουθες εντολές T-SQL μπορούν να χρησιμοποιηθούν για να γίνει αυτό

Αποσύνδεση της βάσης δεδομένων εκτελώντας τον ακόλουθο κώδικα:

EXEC sp_detach_db «test», «true»

Η έξοδος θα είναι έτσι

Σύνδεση της βάσης δεδομένων.

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 ';

Η έξοδος θα είναι:

Χρήση SSMS για αποσύνδεση και επαναπροσάρτηση βάσεων δεδομένων

Αυτό μπορεί επίσης να επιτευχθεί χρησιμοποιώντας SSMS ακολουθώντας αυτά τα βήματα.

  1. Κάντε δεξί κλικ στη βάση δεδομένων, επιλέξτε "έργο" στη συνέχεια κάντε κλικ στο "Αποσπώ"
  2. Τώρα κάντε κλικ στο "Εντάξει"
  3. Τώρα για να επισυνάψετε τη βάση δεδομένων κάντε δεξί κλικ στο "Βάσεις δεδομένων" σε "Εξερεύνηση αντικειμένων" και κάντε κλικ "Συνδέω". Θα εμφανιστεί μια οθόνη, κάντε κλικ στο Προσθήκη. Θα εμφανιστεί ένα άλλο παράθυρο με ονόματα βάσεων δεδομένων όπως φαίνεται παρακάτω επιλέξτε "δοκιμή".
  4. Αλλά θέλουμε να το προσθέσουμε ως τροποποιημένο όνομα βάσης δεδομένων "Δοκιμαστικές περιπτώσεις" οπότε πληκτρολογήστε "Test_case" σε "Επισύναψη ως" κουτί. Τώρα έτσι. Αυτό θα μετονομάσει τη βάση δεδομένων σας.

Επιπλέον, θα συζητήσουμε τα σφάλματα που ενδέχεται να προκύψουν κατά τη μετονομασία της βάσης δεδομένων. Θα χρειαστείτε αποκλειστική πρόσβαση στη βάση δεδομένων για να μετονομάσετε τη βάση δεδομένων, η οποία διασφαλίζει ότι η βάση δεδομένων δεν έχει άλλες συνδέσεις βάσης δεδομένων. Εάν όμως δεν συμβαίνει αυτό, μπορεί να οδηγήσει σε σφάλματα όπως φαίνεται παρακάτω. Το σφάλμα μπορεί να προκύψει ακόμη και όταν ανοίξουμε κατά λάθος ένα άλλο παράθυρο με το ίδιο όνομα βάσης δεδομένων που πρέπει να μετονομαστεί.

Σφάλματα που προκύπτουν κατά τη μετονομασία της βάσης δεδομένων μέσω SSMS και εκτελώντας το ερώτημα:

Αυτά τα παρακάτω δύο σφάλματα έχουν δύο διαφορετικές προβολές επειδή προκύπτουν κατά τη μετονομασία της βάσης δεδομένων χρησιμοποιώντας δύο διαφορετικές μεθόδους. Το σφάλμα 1 προκύπτει κατά τη μετονομασία της βάσης δεδομένων χρησιμοποιώντας SSMS και το δεύτερο σφάλμα προκύπτει κατά τη μετονομασία της βάσης δεδομένων χρησιμοποιώντας ερώτημα. Και τα δύο σφάλματα εμφανίζουν το ίδιο μήνυμα «Η βάση δεδομένων δεν μπορούσε να κλειδωθεί αποκλειστικά για την εκτέλεση της λειτουργίας», Αυτό σημαίνει ότι το σφάλμα προκύπτει καθώς ο χρήστης δεν έχει αποκλειστική πρόσβαση στη βάση δεδομένων για να μετονομάσει μια βάση δεδομένων. Επομένως, για να μετονομάσουμε τη βάση δεδομένων πρέπει να ορίσουμε τη βάση δεδομένων στο "λειτουργία ενός χρήστη“.

Σφάλμα 1: Προέκυψε σφάλμα κατά τη μετονομασία της βάσης δεδομένων μέσω SSMS

"Δεν είναι δυνατή η μετονομασία του τεστ. (ObjectExplorer)

Επιπλέον πληροφορίες:

Η μετονομασία απέτυχε για δοκιμή βάσης δεδομένων (Microsoft.SqlServer.Smo)

Παρουσιάστηκε μια εξαίρεση κατά την εκτέλεση μιας δήλωσης ή παρτίδας Transact-SQL.

(Microsoft.SqlServer.ConnectionInfo)

Η βάση δεδομένων δεν μπορούσε να κλειδωθεί αποκλειστικά για την εκτέλεση της λειτουργίας. (Microsoft SQL Server, Σφάλμα: 5030) "

Σφάλμα 2: Προέκυψε σφάλμα κατά τη μετονομασία της βάσης δεδομένων χρησιμοποιώντας ερώτημα

"Msg 5030, Level 16, State 2, Line 2. Η βάση δεδομένων δεν μπορούσε να κλειδωθεί αποκλειστικά για την εκτέλεση της λειτουργίας."

Πρώτα απ 'όλα, θα αναπαραγάγουμε τα προαναφερθέντα μηνύματα σφάλματος για να κατανοήσουμε το σενάριο που προκύπτουν και πώς να τα διορθώσουμε.

  1. Κάντε δεξί κλικ στο όνομα της βάσης δεδομένων από "Εξερεύνηση αντικειμένων"
  2. Επιλέξτε μετονομασία και πληκτρολογήστε όνομα βάσης δεδομένων και πατήστε "εισαγω" αν λειτουργεί καλά, αλλά αν δεν λειτουργεί και οδηγεί σε σφάλμα όπως αυτό "Δεν είναι δυνατή η μετονομασία (ObjectExplorer). Η βάση δεδομένων δεν μπορούσε να κλειδωθεί αποκλειστικά για την εκτέλεση της λειτουργίας. (Microsoft SQL Server, Σφάλμα: 5030) " όπως φαίνεται στο παρακάτω σχήμα, τότε δεν έχετε αποκλειστική πρόσβαση στη βάση δεδομένων για να μετονομάσετε μια βάση δεδομένων.
  3. Αυτό το σφάλμα σημαίνει ότι ο διακομιστής SQL δεν θα επιτρέψει τη μετονομασία της βάσης δεδομένων έως ότου είναι «Λειτουργία ενός χρήστη».
  4. Έτσι, θα χρειαστείτε αποκλειστική πρόσβαση στη βάση δεδομένων για να μετονομάσετε μια βάση δεδομένων, για να κατανοήσετε αυτό το άνοιγμα ενός άλλου παραθύρου ερωτήματος και να επιλέξετε βάση δεδομένων "δοκιμή"
  5. Τώρα στο πρώτο παράθυρο προσπαθήστε να εκτελέσετε τον ακόλουθο κώδικα.
  6. ALTER DATABASE [δοκιμή] ΟΝΟΜΑ ΤΡΟΠΟΠΟΙΗΣΗΣ = [test_cases]
  7. Αλλά αυτό θα είναι επιρρεπές σε ένα μήνυμα σφάλματος όπως αυτό: "Msg 5030, Level 16, State 2, Line 2. Η βάση δεδομένων δεν μπορούσε να κλειδωθεί αποκλειστικά για την εκτέλεση της λειτουργίας."

Λύση:

Αυτό θα ρυθμίσει τη βάση δεδομένων ώστε να επαναφέρει τυχόν εκκρεμείς συναλλαγές και να τη ρυθμίσει "Λειτουργία ενός χρήστη" και μετά επέστρεψα "Λειτουργία πολλαπλών χρηστών".

  1. Για να το διορθώσουμε αυτό πρέπει να κλείσουμε όλα τα άλλα παράθυρα στα οποία χρησιμοποιείται το ίδιο όνομα βάσης δεδομένων ή να ορίσουμε τη βάση δεδομένων "Λειτουργία ενός χρήστη" χρησιμοποιώντας τις ακόλουθες εντολές.
  2. Αλλάξτε το σύνολο δοκιμών βάσης δεδομένων single_user με άμεση επαναφορά EXEC sp_renamedb «test», «test_cases» go alter database test_cases set multi_user go
  3. Η έξοδος θα είναι η εξής: «Οι μη ειδικευμένες συναλλαγές επαναφέρονται. Εκτιμώμενη ολοκλήρωση επαναφοράς: 0%. Οι μη ειδικευμένες συναλλαγές επαναφέρονται. Εκτιμώμενη ολοκλήρωση επαναφοράς: 100%. Ορίστηκε το όνομα της βάσης δεδομένων "test_cases". "

Συμπέρασμα:

Αυτοί είναι πολλοί τρόποι μετονομασίας της βάσης δεδομένων. Εάν ένας τρόπος δεν λειτουργεί για εσάς. Μπορείτε να πάτε σε άλλο. Ένα πράγμα που πρέπει να έχουμε κατά νου ότι η αλλαγή ονομάτων βάσης δεδομένων με αυτούς τους τρόπους απλώς μετονομάζει τη βάση δεδομένων. Τα «φυσικά αρχεία» εξακολουθούν να έχουν τα ίδια ονόματα. Όπως μπορούμε να δούμε στο παρακάτω σχήμα, έχουμε αλλάξει το όνομα της βάσης δεδομένων από "δοκιμή" προς την "Δοκιμαστικές περιπτώσεις" αλλά στη φυσική τοποθεσία, παρέμεινε το ίδιο.

Έτσι, η απλούστερη προσέγγιση είναι να χρησιμοποιήσετε τη λύση 4 εάν θέλετε να αλλάξετε και το όνομα του αρχείου. Πρέπει πρώτα να αλλάξετε το όνομα των φυσικών αρχείων πριν να επισυνάψετε ξανά τα αρχεία και, στη συνέχεια, να καθορίσετε τα μετονομασμένα αρχεία όταν κάνετε την επανασύνδεση.

Επιπλέον, εκτός από την αλλαγή των ονομάτων των βάσεων δεδομένων, πρέπει επίσης να ελέγξετε αν υπάρχουν αναφορές στον κωδικό της εφαρμογής σας στο όνομα της βάσης δεδομένων. Αυτό μπορεί να είναι είτε εντός του SQL Server είτε εκτός του SQL Server.