5 Ağustos 2008 Salı

"CREATE DATABASE failed. Some file names listed could not be created. Check related errors. Cannot create file 'C:\Program Files\Microsoft SQL Server\

HATA MESAJI:
"CREATE DATABASE failed. Some file names listed could not be created. Check related errors. Cannot create file 'C:\Program Files\Microsoft SQL Server\MSSQL.x\MSSQL\DATA\' because it already exists. Change the file path or the file name, and retry the operation. (Microsoft SQL Server, Error: 1802)"

AÇIKLAMA:
Bir veritabanı oluştururken bu hata ile karşılaşabilirsiniz.

Şu senaryoyu düşünün:
Bir veritabanınız var, adı da "xxx" olsun. Varsayılan olarak, eğer özellikle belirtmezseniz, bu veritabanının veri dosyasının ismi "xxx.mdf" kayıt dosyasının ismi de "xxx_log.ldf" olur.

"xxx" isimli veritabanından bir tane daha oluşturmak istiyorsunuz, ama zaten oluşturulmuş olanın da kalmasını istiyorsunuz. Bunun için, eski "xxx" veritabanının adını "xxx_eski" olarak değiştiriyorsunuz. Fakat bu durumda, veritabanının sadece mantıksal ismi değiş oluyor. Yani dosya isimleri gene aynı kalıyor.

Yeni oluşturmaya çalıştığınız veritabanının da adı "xxx" olduğu için, dosya isimleri de aynen eskiden oluşturulmuş olan "xxx" veritabanının dosya isimleriyle aynı oluyor ve bu nedenle de hata alıyorsunuz.

ÇÖZÜM:
Eğer veritabanınızı SQL Server Management Studio yönetim arayüzüyle oluşturmaya çalışıyorsanız, o zaman "New Database" isimli penceresindeki "General" sayfasında bulunan ve veritabanı dosya bilgilerinin düzenlendiği alanlardan biri olan "Logical Name" bilgilerini değiştirebilirsiniz. Böylece fiziksel veritabanı dosyalarının adları da, bu belirlediğiniz mantıksal isimlere göre değişecektir.

Eğer veritabanınızı CREATE DATABASE komutu ile oluşturuyorsanız, o zaman aşağıdaki örnek kodda olduğu gibi NAME değerlerine bir ek etiket ekleyerek oluşturun.

CREATE DATABASE [xxx] ON PRIMARY
(NAME = N'xxx_yeni', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.x\MSSQL\DATA\xxx_yeni.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'xxx_yeni_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.x\MSSQL\DATA\xxx_yeni_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

1 yorum:

Tevfik Tekin dedi ki...

Create failed for database 'deneme'. (Microsoft.SqlServer.Express.Smo)
gibi bi hata alıyorum yardımcı olabilirmisiniz.