SQL Server veritabanı nasıl yeniden adlandırılır?

Bazen veritabanı adını değiştirmemiz gerekir çünkü orijinal ad, veritabanında depolanan verilerle alakasız hale gelen projeye dayanıyordu veya daha önce geçici olarak ad vermiştiniz ve şimdi değiştirmek istiyorsunuz. Veritabanını yeniden adlandırmanın ardındaki nedenlerden bağımsız olarak, bu makalede, veritabanının nasıl yeniden adlandırılacağı, bunu yaparken hangi hatanın ortaya çıkabileceği ve nasıl düzeltileceği hakkında yollar bulacağız.

Bu nedenle, veritabanını yeniden adlandırmak için, aşağıda tartışılan yöntemlerden birini izlemeniz gerekir. Öncelikle yeniden adlandırılması gereken bir veritabanı oluşturmalıyız.

Veritabanı Oluşturma:

Dosyanızdaki herhangi bir veritabanını seçin SQL Server Yönetim Sistemi (SSMS). Elinizde yoksa, bu prosedürü izleyerek bir tane oluşturabilirsiniz.

  1. "Veri tabanı" içinde "Nesne Gezgini" ve seçeneği seçin "Yeni Veritabanı"
  2. Sol bölmede bir pencere görünecektir
  3. seç "Genel" veritabanı adını sağ bölmeye yazın ve "Tamam mı". Veritabanı oluşturulacak

SQL Server'da bir veritabanını yeniden adlandırmanın birden çok yöntemi vardır ve bunlar, belirli bir yöntemle desteklenen sürümlerle birlikte aşağıda ayrıntılı olarak tartışılmıştır. Daha sonra, veritabanını yeniden adlandırırken ortaya çıkan hataları ve bunları düzeltme prosedürünü de tartışacağız.

Yöntem 1: SQL Server Veritabanını yeniden adlandırmak için SSMS yeniden adlandırma seçeneğini kullanma

Bu, bir veritabanını yeniden adlandırmanın en basit yoludur. Bunu yapmak için bu şekilde ilerlemelisin.

  1. Nesne gezgininden veritabanı adına sağ tıklayın
  2. Seçiniz "Adını değiştirmek", veritabanı adını yazın ve "giriş"

Yöntem 2: SQL Server Veritabanını yeniden adlandırmak için SSMS kullanma

Windows'ta herhangi bir klasörü yeniden adlandırmak gibi bir veritabanını yeniden adlandırmanın başka bir basit yolu. Bunu yapmak için böyle devam etmelisin. Tıpkı Windows klasörlerini yeniden adlandırır gibi yeniden adlandırmak için veritabanına tıklayın.

Yöntem 3: SQL Server Veritabanını yeniden adlandırmak için T-SQL kullanma

SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 ve 2017 için bu komut çalışır. Aşağıdaki ifadeyi yürütün.

ALTER VERİTABANI [test] ADI DEĞİŞTİR = [test_cases]

Çıktı olacak "'Test_cases' veritabanı adı ayarlandı." Aşağıdaki şekilde görüldüğü gibi.

SQL Server 2000 kullanıyorsanız veritabanının adını değiştirmek için aşağıdaki T-SQL komutunu kullanabilirsiniz. SQL 2005, 2008, 2008R2, 2012, 2014, 2016 ve 2017 ile bu hala çalışıyor, ancak bir aşamada Microsoft aşamalı olarak kaldırılacağını iddia ediyor.

Yöntem 4: detach and attach özelliğini kullanma SQL Server'ı yeniden adlandırın

SQL Server’ın ayır ve iliştir özelliğini kullanmak, önce veritabanını kaldırmak ve veritabanını yeniden eklediğinizde veritabanına farklı bir ad atamak için kullanılabilir. Bunu yapmak için aşağıdaki T-SQL komutları kullanılabilir

Veritabanını ayırmak aşağıdaki kodu çalıştırarak:

EXEC sp_detach_db 'test', 'doğru'

Çıktı şöyle olacak

Veritabanını eklemek.

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

Çıktı şu şekilde olacaktır:

Veritabanlarını ayırmak ve yeniden bağlamak için SSMS'yi kullanma

Bu, aşağıdaki adımları izleyerek SSMS kullanılarak da elde edilebilir.

  1. Veritabanına sağ tıklayın, seçin "görev" sonra tıklayın "Ayır"
  2. Şimdi tıklayın "Tamam mı"
  3. Şimdi veritabanını eklemek için sağ tıklayın "Veritabanları" içinde "Nesne Gezgini" ve tıkla "Ekle". Bir ekran görünecektir, Ekle'ye tıklayın. Aşağıda gösterildiği gibi, içinde veritabanı adlarının bulunduğu başka bir pencere görünecektir. "Ölçek".
  4. Ama onu değiştirilmiş veritabanı adı olarak eklemek istiyoruz "Test_cases" bu yüzden yazın "test durumu" içinde "Farklı ekle" Kutu. Şimdi bunun gibi. Bu, veritabanınızı yeniden adlandıracaktır.

Ayrıca, veritabanını yeniden adlandırırken ortaya çıkabilecek hataları tartışacağız. Veritabanını yeniden adlandırmak için veritabanına özel erişime ihtiyacınız olacaktır, bu da veritabanının başka veritabanı bağlantılarına sahip olmamasını sağlar. Ancak durum böyle değilse, aşağıda gösterildiği gibi hatalara neden olabilir. Hata, yeniden adlandırılması gereken aynı veritabanı adına sahip başka bir pencereyi yanlışlıkla açtığımızda bile ortaya çıkabilir.

Veritabanını SSMS aracılığıyla yeniden adlandırırken ve sorguyu yürütürken ortaya çıkan hatalar:

Aşağıda belirtilen bu iki hatanın iki farklı görünümü vardır, çünkü veritabanını iki farklı yöntem kullanarak yeniden adlandırırken ortaya çıkarlar. SSMS kullanarak veritabanını yeniden adlandırırken 1 hatası ortaya çıkıyor ve veritabanını sorgu kullanarak yeniden adlandırırken ikinci hata ortaya çıkıyor. Her iki hata da aynı mesajı gösterir "Veritabanı işlemi gerçekleştirmek için özel olarak kilitlenemedi", bu, kullanıcıya bir veritabanını yeniden adlandırması için veritabanına özel erişim verilmediği için hatanın ortaya çıktığı anlamına gelir. Bu yüzden veritabanını yeniden adlandırmak için veritabanını “tek kullanıcı modu“.

Hata 1: Veritabanını SSMS aracılığıyla yeniden adlandırırken hata oluşuyor

"Test yeniden adlandırılamıyor. (ObjectExplorer)
Ek Bilgiler:
Veritabanı testi için yeniden adlandırma başarısız oldu (Microsoft.SqlServer.Smo)
Bir Transact-SQL deyimi veya toplu iş yürütülürken bir istisna oluştu.
(Microsoft.SqlServer.ConnectionInfo)
Veritabanı, işlemi gerçekleştirmek için özel olarak kilitlenemedi. (Microsoft SQL Server, Hata: 5030)”

Hata 2: Veritabanını sorgu kullanarak yeniden adlandırırken hata oluşuyor

"Msg 5030, Düzey 16, Durum 2, Satır 2. Veritabanı işlemi gerçekleştirmek için özel olarak kilitlenemedi."

Öncelikle, hangi senaryoda ortaya çıktıklarını ve bunların nasıl düzeltileceğini anlamak için yukarıda belirtilen hata mesajlarını yeniden oluşturacağız.

  1. Veritabanı adına sağ tıklayın "Nesne Gezgini"
  2. Yeniden adlandır'ı seçin ve veritabanı adını yazın ve "giriş" eğer çalışırsa iyi olur ama çalışmazsa ve bunun gibi bir hatayla sonuçlanırsa "Yeniden adlandırılamıyor (ObjectExplorer). Veritabanı, işlemi gerçekleştirmek için özel olarak kilitlenemedi. (Microsoft SQL Server, Hata: 5030) ” Aşağıdaki şekilde görüldüğü gibi, bir veritabanını yeniden adlandırmak için veritabanına özel erişiminiz olmaz.
  3. Bu hata, SQL Server'ın veritabanının içinde olmadığı sürece veritabanının yeniden adlandırılmasına izin vermeyeceği anlamına gelir. "Tek kullanıcı modu".
  4. Bu nedenle, bir veritabanını yeniden adlandırmak, bunu anlamak için başka bir sorgu penceresi açın ve veritabanını seçin. "Ölçek"
  5. Şimdi ilk pencerede aşağıdaki kodu çalıştırmayı deneyin.
  6. ALTER VERİTABANI [test] ADI DEĞİŞTİR = [test_cases]
  7. Ancak bu, aşağıdaki gibi bir hata mesajına yatkın olacaktır: "Msg 5030, Düzey 16, Durum 2, Satır 2. Veritabanı işlemi gerçekleştirmek için özel olarak kilitlenemedi."

Çözüm:

Bu, veritabanını bekleyen işlemleri geri alacak ve "Tek kullanıcı modu" ve sonra geri dön "çok kullanıcılı mod".

  1. Bunu düzeltmek için, aynı veritabanı adının kullanıldığı diğer tüm pencereleri kapatmamız veya veritabanını "Tek kullanıcı modu" aşağıdaki komutları kullanarak.
  2. Veritabanı testini değiştir single_user geri alma ile hemen git EXEC sp_renamedb 'test', 'test_cases' git veritabanını değiştir test_cases multi_user git
  3. Çıktı şöyle olacak: "Uygun olmayan işlemler geri alınıyor. Tahmini geri dönüş tamamlama:% 0. Uygun olmayan işlemler geri alınıyor. Tahmini geri dönüş tamamlama:% 100. Veritabanı adı "test_cases" ayarlandı. "

Sonuç:

Bunlar, veritabanını yeniden adlandırmanın birçok yoludur. Bir yol sizin için çalışmıyorsa. Başka birine gidebilirsiniz. Akılda tutulması gereken bir şey, bu yolları kullanarak veritabanı adlarını değiştirmenin sadece veritabanını yeniden adlandırmasıdır. "Fiziksel dosyalar" hala aynı adlara sahiptir. Aşağıdaki şekilde görebileceğimiz gibi, veritabanı adını "Ölçek" -e "Test_cases" ama fiziksel yerde aynı kaldı.

Bu nedenle, dosya adını da değiştirmek istiyorsanız, en basit yaklaşım çözüm 4'ü kullanmaktır. Dosyaları yeniden eklemeden önce fiziksel dosyaların adını değiştirmeli ve ardından yeniden eklediğinizde yeniden adlandırılmış dosyaları belirtmelisiniz.

Ayrıca, veritabanlarının adlarını değiştirmenin yanı sıra, uygulama kodunuzda veritabanı adına herhangi bir referans olup olmadığını da kontrol etmeniz gerekir. Bu, SQL Server içinde veya SQL Server dışında olabilir.

Facebook Twitter Google Plus Pinterest