sql server hata mesajları

25
Mesaj Başlığı "A valid SQL Server installation does not exist in the specified location" Hata Açıklaması Bu hatayı, aşağıdaki adımlar gerçekleştikten sonra aldım. 1- Sistemimdeki yüklü SQL Server 2000 örneğini kaldırdım. 2- İşletim sistemimi tekrar başlattım. 3- Yeni bir SQL Server 2000 örneği kurarken "Setup Type" penceresindeyken "Next" düğmesine tıkladığımda bu hatayı aldım. Çözüm 1- SQL Server 2000 Setup' ı kapattım. 2- Microsoft Download sitesinden MDAC' ın en son sürümünü indirip yükledim. 3- SQL Server 2000 Setup' ı tekrar başlattım ve sorunsuz kuruluma devam ettim. SQL Server Versiyonu SQL Server 2000 İşletim Sistemi Windows Vista Business (Diğer sürümlerde de olabilir) Mesaj Başlığı "A component that you have specified in the ADD_LOCAL property is already installed. To upgrade to the existing component, refer to the template.ini and set the UPGRADE property to the name of the component." Hata Açıklaması Önceden yüklemiş olduğunuz bir SQL Server Instance' ını kaldırdıktan sonra, tekrar yeni bir Instance kurmayı denersiniz, ama yukarıdaki hata mesajını alırsınız. Bunun nedeni, önceki Instance' ın doğru şekilde kaldırılamamış olmasıdır. Çözüm SQL Server 2005 Instance' ını otomatik olarak başarıyla kaldıramadığınız zamanlar, bunu elle yapmayı deneyebilirsiniz. http://msdn2.microsoft.com/en-us/library/aa337087.aspx Hemen yukarıda vermiş olduğum adreste, bunu nasıl yapacağınız adım adım anlatılıyor. (İngilizce) Bununla beraber, buradaki kilit sorunun Windows Installer olduğunu gördüm çoğu zaman. Windows Installer Cleanup Utility kullanıldığı zaman ve sorunlu Instance bu araç ile kaldırıldığı zaman, yeni bir kurulum sorunsuz çekilde gerçekleştirilebiliyor. Windows Installer Cleanup Utility' yi indirmek için: http://support.microsoft.com/kb/290301/ SQL Server Versiyonu SQL Server 2005 İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir. Mesaj Başlığı "Database cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery. (Microsoft SQL Server, Error:3415)" Hata Açıklaması Bu hatayı, iki şekilde alabilirsiniz. 1- Eğer bir SQL Server Instance' ınıza bağlı veritabanını başka bir SQL Server Instance' ına bağlamaya (Attach) çalışırsanız. 2- Eğer SQL Server Instance' ınıza bağlamaya (Attach) çalıştığınız veritabanı dosyaları (örn: mdf, ndf, ldf) Salt-Okunur (Read-Only) ise. Çözüm SQL Server Instance' ınıza bağlamaya çalıştığınız veritabanının başka bir SQL Server Instance' ı tarafından kullanılmadığından emin olun. Veya bağlamaya çalıştığınız veritabanınızın dosyalarının Salt-Okunur olmadıklarından emin olun.

Upload: oezveri-usluer

Post on 26-Jun-2015

8.002 views

Category:

Documents


0 download

DESCRIPTION

SQL Server Hata Mesajları

TRANSCRIPT

Page 1: SQL Server Hata Mesajları

Mesaj Başlığı "A valid SQL Server installation does not exist in the specified location"

Hata Açıklaması

Bu hatayı, aşağıdaki adımlar gerçekleştikten sonra aldım.

1- Sistemimdeki yüklü SQL Server 2000 örneğini kaldırdım.2- İşletim sistemimi tekrar başlattım.3- Yeni bir SQL Server 2000 örneği kurarken "Setup Type" penceresindeyken "Next" düğmesine tıkladığımda bu hatayı aldım.

Çözüm1- SQL Server 2000 Setup' ı kapattım.2- Microsoft Download sitesinden MDAC' ın en son sürümünü indirip yükledim.3- SQL Server 2000 Setup' ı tekrar başlattım ve sorunsuz kuruluma devam ettim.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Windows Vista Business (Diğer sürümlerde de olabilir)

Mesaj Başlığı"A component that you have specified in the ADD_LOCAL property is already installed.  To upgrade to the existing component, refer to the template.ini and set the UPGRADE property to the name of the component."

Hata AçıklamasıÖnceden yüklemiş olduğunuz bir SQL Server Instance' ını kaldırdıktan sonra, tekrar yeni bir Instance kurmayı denersiniz, ama yukarıdaki hata mesajını alırsınız. Bunun nedeni, önceki Instance' ın doğru şekilde kaldırılamamış olmasıdır.

Çözüm

SQL Server 2005 Instance' ını otomatik olarak başarıyla kaldıramadığınız zamanlar, bunu elle yapmayı deneyebilirsiniz.

http://msdn2.microsoft.com/en-us/library/aa337087.aspx

Hemen yukarıda vermiş olduğum adreste, bunu nasıl yapacağınız adım adım anlatılıyor. (İngilizce)

Bununla beraber, buradaki kilit sorunun Windows Installer olduğunu gördüm çoğu zaman. Windows Installer Cleanup Utility kullanıldığı zaman ve sorunlu Instance bu araç ile kaldırıldığı zaman, yeni bir kurulum sorunsuz çekilde gerçekleştirilebiliyor.

Windows Installer Cleanup Utility' yi indirmek için:http://support.microsoft.com/kb/290301/

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Database cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery. (Microsoft SQL Server, Error:3415)"

Hata Açıklaması

Bu hatayı, iki şekilde alabilirsiniz.

1- Eğer bir SQL Server Instance' ınıza bağlı veritabanını başka bir SQL Server Instance' ına bağlamaya (Attach) çalışırsanız.2- Eğer SQL Server Instance' ınıza bağlamaya (Attach) çalıştığınız veritabanı dosyaları (örn: mdf, ndf, ldf) Salt-Okunur (Read-Only) ise.

Çözüm

SQL Server Instance' ınıza bağlamaya çalıştığınız veritabanının başka bir SQL Server Instance' ı tarafından kullanılmadığından emin olun.

Veya bağlamaya çalıştığınız veritabanınızın dosyalarının Salt-Okunur olmadıklarından emin olun.

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Login failed for user . This user is not associated with a trusted SQL Server connection. (Microsoft SQL Server, Error: 18452)"

Page 2: SQL Server Hata Mesajları

Hata Açıklaması

Bu hata ile karşılaştığınız an ilk aklınıza gelmesi gereken şey "SQL Server Authentication Method" yani SQL Server' a bağlanma yönteminiz olmalıdır.

SQL Server' da iki bağlantı doğrulama yöntemi vardır, başlık olarak bunlar:1- Windows Authentication2- SQL Server and Windows Authentication mode' dur.

Eğer bağlanmaya çalıştığınız SQL Server Instance' ının bağlanma yöntem ayarı Windows Authentication ise ve siz de bir SQL Server Login' i ile bağlanmaya çalışıyorsanız, bu hata mesajıyla karşılaştırsınız ve SQL Server Instance' ınıza bağlanamazsınız.

Çözüm

SQL Server Login' lerini kullanmak için SQL Server bağlanma yöntemini "SQL Server and Windows Authentication" olarak değiştirmeniz gerekir.

Bunun için, Yerel Yönetici grubuna dahil olan bir yönetici hesabıyla SQL Server' ınıza bağlanabilirsiniz. Yerel Yönetici grubunun, SQL Server' da varsayılan olarak (BUILTIN) "sysadmin" (SQL Server' ı yönetmek için kullanılan ve tüm hakları barındıran bir Sunucu Sabit Rolü 'Server Fixed Role') rolüne sahip bir Windows Login' i bulunmaktadır. Bu hesap ile Server Properties (Sunucu Özellikleri)' i açarak, "Security" penceresinden Server Authentication yöntemini "SQL Server and Windows Authentication mode" olarak değiştirebilirsiniz.

Not: Bu değişikliğin geçerli olabilmesi için SQL Server servisinizi kapatıp tekrar çalıştırmanız gerekecektir.

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied."

Hata Açıklaması http://support.microsoft.com/kb/888228/tr

Çözüm http://support.microsoft.com/kb/888228/tr

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection. (Microsoft SQL Server, Error: 18452)"

Hata Açıklaması Windows hesabınız ile, üyesi olmadığınız bir etki alanına (Domain) bağlanmaya çalışırsanız bu hata ile karşılaşırsınız.

Çözüm

Windows hesabınız yerine, bir SQL Server Login' i kullanarak bağlanabilirsiniz.

Not: Bu durumda, karşı taraftaki SQL Server' ın "SQL Server and Windows Authentication mode" için ayarlanmış olması gerekiyor.

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Cannot open user default database. Login failed. Login failed for user . (Microsoft SQL Server, Error: 4064)"

Hata Açıklaması

SQL Server' da, her Login için bir varsayılan veritabanı atanır. Bu işlem, Login' in özelliklerinden yapılabilir.

Eğer bir Login' e, giriş hakkı olmayan bir veritabanı varsayılan veritabanı olarak atanırsa, bu Login ile giriş yapmaya çalışan kullanıcınız bahsi geçen hatayı alır.

Ayrıca, eğer bir Login' in varsayılan veritabanı belirlendikten sonra, bu atanan veritabanının adı değişir veya silinirse, Login, aynı hatayı alacaktır.

Çözüm SQL Server veritabanı yöneticisinin, mevzubahis Login' in varsayılan veritabanı bilgisini, Login' in giriş hakkı olan bir veritabanı olarak değiştirmesi yeterli olacaktır.

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Page 3: SQL Server Hata Mesajları

Mesaj Başlığı"A connection could not be established to <sunucu_adi>. Reason: Login failed for user <sunucu\kullanici_adi>. Reason: Server is in single user mode. Only one administrator can connect at a time."

Hata Açıklaması

Bu sorun, SQL Server servisine başlangıç parametresi olarak "-m" koyup kaydettikten ve sonra SQL Server servisini yeniden başlatmaya çalıştığınızda karşınıza çıkabilir.

"-m" parametresi, SQL Server servisini tek kişilik giriş izni vermek üzere başlatır.

Çözüm

SQL Server tek kişilik girişe izin verdiği için, eğer SQL Server Agent' ınız veya başka bir servis (ki bu genelde SQL Server Agent olur) sizden önce SQL Server' a bağlanırsa siz SQL Server Instance' ınıza bağlanamazsınız ve bu hata ile karşılaşırsınız.

Ayrıca, SQL Server 2005' te, SQL Server Starup Parameter (Başlangıç parametreleri) SQL Server Configuration Manager ile değiştirilebilir. Yani bu parametreyi değiştirmek için, SQL Server Management Studio' ya bağlanmak zorunda değilsiniz.

Fakat SQL Server 2000' de, bu ayarı değiştirebilmek için ilk önce SQL Server 2000' e bağlanmak zorundasınız. Eğer bu hatayı alıyorsanız ve SQL Server Instance' ınıza Enterprise Manager ile bağlanamıyorsanız, o zaman bu parametreyi de değiştiremezsiniz demektir.

Buna benzer şahit olduğum bir durumda, kullanıcı bu hata ile karşılaşmış ve SQL Server ile ilgili tüm servisleri durdurduğu halde (SQL Server servisi hariç tabii) gene de EM kullanarak SQL Server 2000 Instance' ına bağlanamamış ve bu ayarı da değiştirememişti. Bu yüzden kendi dahil hiç bir kullanıcısı SQL Server' a bağlanamıyordu.

Bu sorunu çözmek için, Regedit' ten değişiklikler yapıldı. Değişikliğin yapıldığı yerin adresi bizim durumumuzda şöyleydi: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLSERVER2000\MSSQLServer\Parameters. Sizin durumunuzda farklı olabilir. Bu fark, yüklediğiniz Intance' ın Default Instance veya Named Instance olmasına göre değişir. Ama sanırım artık bakacağınız yeri biliyorsunuz...

Yapılan değişiklik ise, SQLArg anahtarlarından "-m" değerini içeren anahtarı silmek idi. Evet, anlayacağınız üzre SQL Server Startup Parameters burada tutuluyor.

Bu arada, eğer bu sorun başınıza bir Küme (Cluster) ortamında geldiyse, unutmayın ki tüm düğümlerden temizlemelisiniz bu anahtarı.

SQL Server Versiyonu SQL Server 2000, 2005 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"SQL Server Setup failed to execute a command for server configuration. The error was [Microsoft][SQL Native Client][SQL Server]Windows NT user or group 'COMPUTERNAME\SQLServer2005MSSQLUser$COMPUTERNAME$MSSQLSERVER' not found. Check the name again.. Refer to the server error logs for detailed error information. "

Hata Açıklaması

Bu sorunla, SQL Server 2005 Express Edition SP1' de karşılaşırsınız.

Eğer aşağıdaki şartlar gerçekleşirse, bu sorun meydana gelir:

- Eğer Windows Vista işletim sistemi yüklü olan bilgisayarınızın bilgisayar adı küçük karakterler içeriyor veya büyük küçük karışık karakterler içeriyorsa. Meselâ bilgisayar adınız "Bilgisayarım" ise...

- Eğer SQL Server 2005 Express Edition SP1' i yüklerken SQL Server servisi için Collation ayarını olarak case-sensitive (büyük küçük harf duyarlı) olarak belirlediyseniz.

Windows Vista, bilgisayar adı için gelen istekleri aşağıdaki iki yolla cevaplar:

- Windows Vista, bilgisayar adını büyük harflerle geri döndürür.

- Windows Vista, bilgisayar adını Sistem Özellikleri' nde olduğu gibi gerçek haliyle, yani karışık haliyle geri döndürür.

SQL Server 2005 Express Edition' ın yüklenmesi esnasında, Setup programı bilgisayar adını karışık karakterler olarak almak ister. Fakat, bunun yerine Windows Vista bilgisayar adını büyük harflere dönüştürerek gönderir. Setup programı SQL Server Express Edition' ın yüklenmesi esnasındaki diğer çeşitli yerlerde de ister. Windows Vista o zaman da bilgisayar adını karışık karakterlerle gönderebilir.

SQL Server 2005 Express Edition Setup programı alınan bilgisayar isimlerini karşılaştırır. Genel olarak, bu bir soruna neden olmaz çünkü bilgisayar isimleri Windows vistada büyük küçük harf duyarlı değildir. Bununla birlikte, eğer SQL Server 2005 Express Edition' ı yüklerken büyük

Page 4: SQL Server Hata Mesajları

küçük harf duyarlı ayarı yapılırsa, Windows Vista' dan alınan ve bazısı büyük küçük harf karışık, bazısı da sadece büyük harf olan bilgisayar isimleri karşılaştırıldığında hata oluşur. Sonuç olarak da, SQL Server 2005 Express Edition SP1' in yüklenmesi başarısızlıkla sonuçlanır. 

Çözüm

Bunun için iki yol önerilir. Bunlar:

1- Bilgisayar adınızı sacede büyük harflerden oluşacak şekilde değiştirin. Meselâ "Bilgisayarim" ise, "BILGISAYARIM" yapın ve ayarların etkin olabilmesi için bilgisayarınızı kapatıp yeniden başlatın. Bununla birlikte, bilgisayar adınızı belirlerken Türkçe karakter kullanmamanızı tavsiye ediyorum. Böyle küçük büyük harf değişimlerinde sorunlar yaşamanıza neden olabilir.

2- SQL Server 2005 Express Edition SP1' i yüklerken, Collation ayarlarında "case-sensitive" (küçük-büyük harf duyarlı) seçeneğini seçmeyin. 

Kaynak:http://support.microsoft.com/kb/929105

SQL Server Versiyonu SQL Server 2005 Express Edition SP1 (Diğer versiyonlarda test edilmemiştir.)

İşletim Sistemi Windows Vista

 

Mesaj Başlığı "Microsoft SQL-DMO (ODBC SQLState: 42000) Too many backup devices specified for backup or restore; only 64 are allowed. RESTORE DATABASE is terminating abnormally."

Hata Açıklaması SQL Server 2005' te yedeğini aldığınız bir veritabanını, bir SQL Server 2000 Instance' ında açmaya (RESTORE) çalışırsanız bu hata ile karşılaşırsınız.

Çözüm

Bir SQL Server 2000 Instance' ında yedeğini aldığınız bir veritabanını bir SQL Server 2005 Instance' ında açabilirsiniz. Fakat bir SQL Server 2005 Instance' ında yedeğini aldığınız bir veritabanını SQL Server 2000 Instance' ında açma gibi bir şansınız olmadığı için, bunu denememenizi tavsiye ederim.

Eğer böyle bir şey yapmak istiyorsanız doğrudan yapamazsınız. Dolaylı olarak ise SQL Server 2005' teki veritabanınızın DDL Script' i ile şemasını (Schema) çıkarıp SQL Server 2000 Instance' ında çalıştırabilir ve veritabanınızın iskeletini oluşturabilirsiniz. Bundan sonra da verileri aktarmak için SSIS\DTS' i kullanabilirsiniz.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Device activation error. The physical file name <veritabanı_dosya_yolu> may be incorrect."

Hata Açıklaması SQL Server' da bir veritabanı oluşturmaya çalışırken alırsınız bu hatayı. 

Çözüm Veritabanını oluşturduğunuz yol, geçerli bir yol değildir veya yoktur. Yolun varolduğundan emin olun. Bu yol için kullandığınız sürücülerin ve klasörlerin varlığını teyit edin.

SQL Server Versiyonu SQL Server 2000, SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"CREATE DATABASE failed. Could not allocate enough disk space for a new database on the named disks. Total space allocated must be at least <dosya_boyutu> MB to accommodate a copy of the model database."

Hata AçıklamasıSQL Server 2000' de Model veritabanının veri veya log dosyalarından daha ufak boyutlarda veri veya log dosyaları olan bir veritabanı oluşturmaya çalışırken alırsınız bu hatayı. 

Çözüm Model veritabanınızın veri ve log dosyalarının boyutlarını küçülterek bu hatadan kurtulabilirsiniz.

Page 5: SQL Server Hata Mesajları

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The CREATE DATABASE statement failed. The primary file must be at least 3 MB to accommodate a copy of the model database."

Hata AçıklamasıSQL Server 2005' te Model veritabanının veri veya log dosyalarından daha ufak boyutlarda veri veya log dosyaları olan bir veritabanı oluşturmaya çalışırken alırsınız bu hatayı. 

Çözüm Model veritabanınızın veri ve log dosyalarının boyutlarını küçülterek bu hatadan kurtulabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "'LandingPage' is not a valid value for setting 'ACTION'. Refer to Help for more information."

Hata Açıklaması SQL Server 2008 November CTP Setup dosyasını çalıştırmayı denediğinizde bu hatayı alabilirsiniz.

Çözüm Denetim Masasındaki Bölge ve Dil Seçenekleri' nde bulunan Biçim' i Türkçe' den İngilizce' ye çevirdiğinizde SQL Server 2008 November CTP Setup, kuruluma devam edebiliyor.

SQL Server Versiyonu SQL Server 2008 November CTP

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Drop failed for Login 'Login_Adı'. The server principal owns an endpoint and cannot be dropped. (Microsoft SQL Server, Error: 15141)"

Hata Açıklaması

SQL Server 2005' te bir Login' i silmeye çalıştığınızda bu hata ile karşılaşabilirsiniz. Nedeni de, bu Login' in sahip olduğu bir Endpoint' in bulunmasıdır.

SQL Server 2005' te Endpoint' ler veritabanı değil, sunucu bazındadırlar. Endpoint' lerinize SSMS (SQL Server Management Studio) ile, Object Explorer penceresindeki Server Object\Endpoints düğümleri altından da ulaşabilirsiniz.

Not: Endpoint' ler SSMS arayüzünden oluşturulamazlar. Sadece T-SQL kullanılarak CREATE ENDPOINT komutlarıyla oluşturulabilirler. Endpoint' ler hakkında daha fazla bilgi için buraya tıklayınız.

Çözüm

Bu hatayı almamak için, önce silmek istediğiniz Login' e ait Endpoint' leri kaldırmanız gerekiyor.

Bunun için, yukarıda anlattığım şekilde Endpoint' lerinizi bulabilirsiniz. Bulduğunuz Endpoint' lerin hangi Login için yetkilendirdiğini bulmak için de, SSMS yoluyla bulduğunuz Endpoint' in üzerinde farenin sağ tuşuna tıklayıp Script Endpoint as: CREATE To seçeneklerini kullanabilirsiniz. Açılan sorgulama penceresinde AUTHORIZATION kısmını kontrol edebilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

SQL Server Configuration Manager:The request failed or the service did not respond in a timely fashion. Consulf the event log or other applicable error logs for details.

Event Log:"The SQL Server ('Instance_Adı') service failed to start due to the following error: The service did not start due to a logon failure."

Hata Açıklaması SQL Server servisini başlatmaya çalıştığınızda alırsınız bu hatayı. Nedeni ise, SQL Server servis hesabının şifresinin değiştirilmesidir. Fakat SQL Server servisinin şifresi güncellenmemiştir.

Page 6: SQL Server Hata Mesajları

Biraz karışık oldu gibi, şöyle anlatmaya çalışayım. Meselâ kendi başına çalışan (Stand-Alone) bir SQL Server' ınız var. SQL Server Insance' ınız için bir kullanıcı hesabı oluşturdunuz. Daha sonra bu hesabını, SQL Server Instance' ınızı çalıştıracak şekilde ayarladınız. Fakat bir şey oldu ve bu servis hesabının şifresini değiştirmeniz gerekti. Yönetimsel Araçlardan Bilgisayar Yönetimi' ne gittiniz ve hesabın şifresini değiştirdiniz. Fakat hesabı kullanan servislerdeki bilgiler otomatik olarak güncellenmez. Meselâ Services MMC veya SQL Server Configuration Manager yoluyla ulaşabileceğiniz SQL Server servisinin hesabı, eskisi olarak kalacaktır. Ve siz SQL Server Instance' ınızı çalıştırmaya çalıştığınızda bu hatayı alırsınız. Çünkü servis hâlâ eski kullanıcı şifresini kullanarak çalışmaya çalışıyordur.

Çözüm

SQL Server Instance' ınızın servis hesabı bilgilerini güncellemelisiniz. Bunu iki pratik yolla yapabilirsiniz:

1- Başlat\Çalıştır "Services.msc" yazıp Tamam düğmesine tıklayın. Açılan pencerede ilgili SQL Server servisinizi bulun. Özellikler' inden gerekli şifre güncellemesini yapın.

2- SQL Server Configuration Manager' ı başlatın. SQL Server 2005 Services düğümüne tıklayın ve ilgili SQL Server servisini bulup, gerekli şifre güncellemesini yapın.

Not:Bu sorun sadece SQL Server servisleri için değil, tüm servileriniz için geçerlidir.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "A severe error occurred on the current command."

Hata Açıklaması SQL Server 2000 veya 2005' in tüm sürümlerinde, bazı sorgu veya Stored Procedure' leri çalıştırmayı denediğinizde bu hata ile karşılaşabilirsiniz.

Çözüm

SQL Server 2000:SQL Server 2005' te bu hata için bir FIX üretti Microsoft. Bu FIX de SQL Server 2005' in Servis Paketi 1' inin içinde bulunmaktadır.

Bu sorunu gidermek için SQL Server 2005' in en son Servis Paketini yüklemenizi öneririm.

Daha fazla bilgi almak için:http://support.microsoft.com/kb/896373

SQL Server 2005:SQL Server 2005' te bu hata için bir FIX üretti Microsoft. Bu FIX de SQL Server 2005' in Servis Paketi 1' inin içinde bulunmaktadır.

Bu sorunu gidermek için SQL Server 2005' in en son Servis Paketini yüklemenizi öneririm.

Daha fazla bilgi almak için:http://support.microsoft.com/kb/910416/en-us

SQL Server Versiyonu SQL Server 2000, 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"Connections to SQL Server files (*.mdf) require SQL Server Expres 2005 to function properly. Please verify the installation of the component or download from the URL: http://go.microsoft.com/fwlink/?LinkId=49251"

Hata Açıklaması

Visual Studio 2005' te, Projenize bir Veritabanı eklemek istediğinizde bu hata ile karşılaşabilirsiniz.

Nedeni, Veri Bağlantıları (Data Connections)' ndaki "SQL Server Instance Name" ayarının yanlış yapılandırılmasından kaynaklanıyor.

Çözüm Visual Studio 2005' teki "SQL Server Instance Name" ayarını doğru bir şekilde yapılandırmak için Visual Studio 2005' i çalıştırın. Daha sonra sırasıyla aşağıdaki adımları izleyin:

- "Tools",- "Options...",

Page 7: SQL Server Hata Mesajları

- "Database Tools", - "Data Connections",- "SQL Server Instance Name" kutusuna geçerli bir SQL Server 2005 Express Edition Instance' ının adını girin. Eğer SQL Server Instance' ınızı "Default Instance" olarak kullanıyorsanız, o zaman bu kutuyu boş bırakın.

SQL Server Versiyonu SQL Server 2005 Express Edition

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"Database 'veritabani_adı' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (Microsoft SQL Server, Error: 945)"

Hata Açıklaması Veri ve Log dosyaları silinmiş bir veritabanına ulaşmaya çalıştığınızda bu hata ile karşılaşırsınız.

Çözüm Dosyalar zaten silindiği için yapabileceğiniz pek bir şey yoktur. En son aldığınız yedekten geri dönmeye çalışmanızı öneririm.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Create maintenance plan failed. Create failed for JobStep 'Subplan'. (Microsoft.SqlServer.MaintenancePlanTasks)"

Hata AçıklamasıEğer SQL Server 2005' in RTM (Release to Manufacturer) versiyonunu (9.00.1399.x) kullanıyorsanız ve SSIS yüklememişseniz, Maintanence Plan oluşturmaya çalıştığınızda bu hatayı alırsınız.

Çözüm

Bu hatayı almadan, SQL Server 2005' te Maintanence Plan oluşturmak için ya en az SQL Server 2005 Servis Paketi 1' i yüklemelisiniz, ya da SSIS' i yüklemelisiniz.

En azından SQL Server 2005 SP1' i yükledikten sonra, SSIS' i yüklemek zorunda kalmadan Maintanence Plan oluşturabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - No connection could be made because the target machine actively refused it.) (Microsoft SQL Server, Error: 10061)"

Hata Açıklaması Bağlanmaya çalıştığınız SQL Server 2005 Instance' ına ait SQL Server servisi çalışmıyorsa bu hatayı alırsınız.

Çözüm

SQL Server servisinizin çalıştığından emin olun. Bunun için:

- Başlat\Programlar\Microsoft SQL Server 2005\Configuration Tools' tan SQL Server Configuration Manager' ı çalıştırın ve "SQL Server 2005 Services" düğümünden ilgili Instance' a ait SQL Server servisinizin çalışıp çalışmadığını kontrol edin.

- Services MMC' den ilgili SQL Server Instance' ınıza ait SQL Server servisini kontrol edin. (Services MMC' yi başlatmak için Başlat\Çalıştır: "services.mmc" yazıp "Tamam" düğmetine tıklayın.)

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Ad hoc update to system catalogs is not supported."

Hata Açıklaması Eğer SQL Server 2005 Instance' ınızdaki "allow updates" seçeneği etkin ise, aşağıdaki örnek kodu çalıştırdığınızda bu hatayı alırsınız.

=============================sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE

Page 8: SQL Server Hata Mesajları

GO=============================

Çözüm

Eğer 'allow updates' seçeneğini etkin halde bırakmak istiyorsanız o zaman yukarıdaki kodu şöyle yazın:

=============================sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE WITH OVERRIDEGO=============================

Eğer 'allow updates' seçeneğini sp_configure Stored Procedure' ünü kullanarak etkisiz hale getirirseniz, o zaman ilk çalıştırmayı deneyip hata aldığınız kodu gene aşağıdaki şekilde çalıştırabilirsiniz:

=============================sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE GO=============================

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Error 0xc002f210: Preparation SQL Task: Executing the query "" failed with the following error: "Retrieving the COM class factory for component with CLSID {...} failed due to the following error: 80040154. Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly."

Hata Açıklaması Export Wizard ile veri vermeye çalıştığınızda bu hata ile karşılaşabilirsiniz. Nedeni ise SQL Server Agent Servisinin çalışmıyor olmasıdır.

Çözüm

Export \ Import Wizard' ı kullanmadan önce SQL Server Agent Servisinin çalıştığından emin olun.

Bunun için SQL Server Configuration Manager veya Services MMC' yi kullanabilirsiniz.

SQL Server Versiyonu SQL Server 2005 (9.0.1399)

İşletim Sistemi Bu sorunla tüm v

Mesaj Başlığı"Error Source: Microsoft OLE DB Provider for SQL Server Error

Description:[DBNETLIB][ConnectionOpen (Invalid Instance()).]Invalid connection."

Hata Açıklaması SQL Server 2000 Enterprise Manager' dan başka bir SQL Server 2005 Instance' ına bağlanmaya çalıştığınızda bu hatayı alırsınız.

ÇözümSQL Server 2005' in yönetim arayüzü olan SQL Server Management Studio kullanarak bir SQL Server 2000 Instance' ına bağlanabilirsiniz; fakat aynı şeyin tersini, yani Enterprise Manager kullanarak bir SQL Server 2005 Instance' ına bağlanamazsınız.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Error 5(error not found) occurred while opening file 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf' to obtain configuration information at startup. An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary."

Hata Açıklaması SQL Server 2005 Instance' ınızı başlattığınızda, Olay Görüntüleyici (Event Viewer)' da böyle bir hata alabilirsiniz.

Bu hatanın benim karşılaştığım sebebi, SQL Server servisi için kullanılan hesabın, hatada belirtilen dosya yolu için yeterli izinlerinin olmamasıydı.

Meselâ, SQL Server servis hesabının örnekteki DATA klasörüne erişim hakkı yoktu.

Page 9: SQL Server Hata Mesajları

Not: Tek erişim sorunu bu klasörle sınırlı değildir. Bu Instance ile ilgili tüm klasörlerin erişim haklarını kontrol etmeniz gerekebilir.

Çözüm SQL Server servis hesabına gerekli erişim haklarını verdiğinizde, bu sorun çözülecektir.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"System.Data.SqlClient.SqlError: The operating system returned the error '32(error not found)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'C:\test\mydb.mdf'. (Microsoft.SqlServer.Smo)"

Hata Açıklaması

SQL Server' da bir yedek dosyasını açmaya (Restore) çalıştığınızda bu hatayı alabilirsiniz.

Yedek dosyayı açamıyorsunuz, çünkü açmaya çalıştığınız dosyaların aynıları o anda zaten açık ve kullanılıyor.

Meselâ yedek dosyanızı SQL Server 2005' in yönetim arayüzü olan SQL Server Management Studio' dan açtığınızı varsayalım. 

SSMS' teki "Restore Database" penceresinde bulunan "Options" penceresinde "Restore the database files as:" listesi bulunmaktadır. İşte bu liste, yedeğinizin içerisindeki veritabanı dosyalarını içerir.

Bu hata durumunda ise sizin yapmaya çalıştığınız, bu listede belirtilen isimlerde ve yollardaki dosyaları, zaten bu isim ve yollarda bulunan dosyaların üzerine kaydetmeye çalışmaktır. Fakat çalışan dosyanın üzerine kaydedemeyeceğiniz için, bu hatayı alırsınız.

ÇözümSSMS' teki "Restore Database" penceresinde bulunan "Options" penceresinde "Restore the database files as:" listesindeki dosya yolu veya dosya adı bilgilerinde değişiklik yaparak sorunu çözebilirsiniz.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaş

Mesaj Başlığı"The server network address "TCP://Ekrem-PC.MyServer.local:5022" can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational. (Microsoft SQL Server, Error: 1418)"

Hata AçıklamasıSQL Server 2005' te Database Mirroring' in güvenlik yapılandırma ayarını yaptıktan sonra, Database Mirroring işlemini başlatmak için "Start Mirroring" düğmesine tıklarsınız ve ardından bu hatayı alırsınız.

Çözüm

Database Mirroring yapılandırmasına geçmeden önce, veritabanlarını Database Mirroring işlemine hazırlamamız gerekir.

Ana \ kopyalanacak veritabanımızın (Principal) aynısının yedeğini alıp, kopya (Mirror) görevini üstlenecek SQL Server Instance' ına açarız (Restore). İşte bu işlem esnasında, Mirror veritabanının Recovery State' inin "NORECOVERY" olmasına dikkat etmelisiniz. Aksi takdirde bu hatayı alırsınız.

Database Mirroring hakkında daha fazla bilgi için buraya tıklayarak bu konudaki makalemi okuyabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"The mirror database, "Veritabanim", has insufficient transaction log data to preserve the log backup chain of the principal database. This may happen if a log backup from the principal database has not been taken or has not been restored on the mirror database. (Microsoft SQL Server, Error: 1478)"

Hata AçıklamasıSQL Server 2005' te Database Mirroring' in güvenlik yapılandırma ayarını yaptıktan sonra, Database Mirroring işlemini başlatmak için "Start Mirroring" düğmesine tıklarsınız ve ardından bu hatayı alırsınız.

Çözüm Database Mirroring yapılandırmasına geçmeden önce, veritabanlarını Database Mirroring işlemine hazırlamamız gerekir.

Ana \ kopyalanacak veritabanımızın (Principal) aynısının yedeğini alıp, kopya (Mirror)

Page 10: SQL Server Hata Mesajları

görevini üstlenecek SQL Server Instance' ına açarız (Restore). Daha sonra, Principal veritabanının bir de Transaction Log yedeğini almalı ve bunu da Mirror' daki veritabanına uygulamalıyız. Bu işlemden sonra bu hatayı almamanız gerekiyor. Database Mirroring hakkında daha fazla bilgi için bu konudaki makalemi okuyabilirsiniz.

Database Mirroring hakkında daha fazla bilgi için buraya tıklayarak bu konudaki makalemi okuyabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Microsoft SQL Native Client (0x80004005)

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."

Hata Açıklaması T-SQL' da eğer bir değişkene birden fazla değer atanmaya çalışılırsa bu hata alınır.

Çözüm Bir değişkene bir seferde sadece bir kayıt atanabilir.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The database "Veritabanı_adı" cannot be opened. It is acting as a mirror database."

Hata AçıklamasıSQL Server 2005' te Database Mirroring' teki Mirror görevini üstlenen veritabanına SELECT, INSERT, UPDATE, DELETE gibi işlemler yapmaya çalışırsanız, bu hata ile karşılaşırsınız.

Çözüm

SQL Server 2005 ile SQL Server Failover Clustering' e alternatif olarak kullanılmaya başlanan Database Mirroring teknolojisinde, Mirror görevini üstlenen veritabanında herhangi bir değişiklik veya sorgulama yapılamaz.

Bununla birlikte, Mirror görevini ifa eden veritabanının Database Snapshot' ı alınarak ancak böyle raporlama amaçlı olarak kullanılabilir. Yani sadece SELECT 'i kullanabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Unable to cast object of type 'Microsoft.SqlServer.Management.Smo.SimpleObjectKey' to type 'Microsoft.SqlServer.Management.Smo.Agent.JobObjectKey'. (Microsoft.SqlServer.Smo)"

Hata Açıklaması SQL Server 2005' te yeni bir Job oluşturmaya çalıştığınızda bu hatayı alabilirsiniz.

Çözüm SQL Server 2005 Servis Paketi 2' yi yüklemeniz bu sorunu çözecektir.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "'Void Microsoft.SqlServer.Management.DatabaseMaintenance.TaskUIUtils..ctor()'. (Microsoft.SqlServer.MaintenancePlanTasksUI)"

Hata Açıklaması SQL Server 2005' te yeni bir Maintanence Plan oluşturmaya çalıştığınızda bu hatayı alabilirsiniz.

Çözüm SQL Server 2005 Servis Paketi 2' yi yüklemeniz bu sorunu çözecektir.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"The remote copy of database "Veritabani_adi" has not been rolled forward to a point in time that is encompassed in the local copy of the database log. (Microsoft SQL Server, Error: 1412)"

Hata Açıklaması SQL Server 2005' te Database Mirroring' i başlatmaya çalıştığınızda bu hatayı alabilirsiniz.

Page 11: SQL Server Hata Mesajları

Nedeni, Mirror veritabanını açarken (Restore) kullandığınız Transaction Log dosyasının, Primary (Esas) veritabanındaki kayıtları yakalamaya yeterli olacak kadar yeni olmamasıdır.

Çözüm

Database Mirroring işlemi için kullanılacak kaynak veritabanı olan Primary veritabanının Transaction Log yedeğini alıp, mümkün olan en kısa sürede Mirror görevini üstlenecek veritabanına uygulamak (Restore) ve hemen Database Mirroring' i başlatmak bu sorunu çözecektir.

Eğer Primary veritabanının hızına yetişemiyorsanız, kullanıcıların Primary veritabanında değişiklik yapmasını engelleyin ve öyle Transaction Log yedeğini alıp Mirror veritabanına uygulayın ve Database Mirroring işlemini başlattıktan sonra Primary veritabanını tekrar kullanılabilir duruma getirin.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects."

Hata AçıklamasıSQL Server 2005 Instance' ınıza, başka bir Instance' tan bir veritabanı taşıdığınızda ve bunu iliştirdiğinizde (Attach) veya açtığınızda (Restore) ve bu veritabanında bir Database Diagram oluturmaya çalıştığınızda bu hatayı alabilirsiniz.

Çözüm

Bu sorunu çözmek için aşağıdaki kod bloğunu kendi ortamınıza göre ayarlayıp kullanabilirsiniz.

EXEC sp_dbcmptlevel 'Veritabanınızın_adı', '90';goALTER AUTHORIZATION ON DATABASE::Veritabanınızın_adı TO "Logininiz"gouse [Veritabanınızın_adı]goEXECUTE AS USER = N'dbo' REVERTgo

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"The report server has encountered a configuration error.  Access denied to the path 'c:\program files\microsoft sql server\mssql.3\reporting services\reportserver\rsreportserver.config' is denied."

Hata Açıklaması SQL Server 2005' i yükledikten sonra Report Manager' ı açmaya çalıştığınızda böyle bir hata alabilirsiniz.

Çözüm ASNET hesabına "rsreportserver.config" dosyası için READ izni vermeniz bu sorunu çözecektir.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "SQL Server replication does not support nicknames, such as "." or "(local)", as server names."

Hata Açıklaması SQL Server 2000' de Replication için publisher, distributor vs. ayarlamaya çalıştığınızda bu hatayı alabilirsiniz.

Çözüm Enterprise Manager' daki SQL Server Group altında bulunan (ve muhtemelen "local" olan) SQL Server Registration' ınızı silmelisiniz ve sunucu adınızın kullanıldığı bir SQL Server Registration oluşturmalısınız.

Bunun için - Enterprise Manager' ı açın- SQL Server Group altında bulunan ve adı (local) olan SQL Server Registration' ınızı silin (üzerinde sağ tuşa tıklayıp "Delete SQL Server Registration")

Page 12: SQL Server Hata Mesajları

- SQL Server Group üzerindeyken "New SQL Server Registration" a tıklayın.- Listeden Instance' ınızın seçin ve kaydedin.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Executing the query "EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2007-11-14T13:06:42' " failed with the following error: "Error executing extended stored procedure: Invalid Parameter". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly."

Hata Açıklaması

SQL Server 2005' te Maintanence Plan kullanarak oluşturduğunuz bir Maintanence Cleanup Task' teki Folder değerini boş bırakırsanız bu hatayı alırsınız.

Hatanın oluşumu şöyle:- SSMS' i açın- Management' tan Maintanence Plans' e gidin.- Sağ tuş, Mailtanence Plan Wizard' a tıklayın.- Bir Maintanence Cleanup Task oluşturmaya başlayın ve Define Maintanence Cleanup Task penceresine geldiğinizde Folder metin kutusuna gerekli yol değerini girmezseniz ve boş bırakırsanız, bu hatayı alırsınız.

ÇözümMAintanence Cleanup Task' i oluştururken karşınıza gelen Define Maintanence Cleanup Task penceresindeki Folder metin kutusuna veritabanı yedeklerinizi tuttuğunuz geçerli bir yol değeri girin.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "A strong SA password is required for security reasons. Please use SAPWD switch to supply the same. Refer to readme for more details. Setup will now exit."

Hata Açıklaması

SQL Server 2000 MSDE kurmaya çalışırken bu mesaj ile karşılaşabilirsiniz.

Aslında bu bir hata değil, bilgilendirme amaçlı bir uyarıdır; fakat kuruluma devam etmenize müsaade etmez, bu nedenle kurulumdan çıkılır.

Çözüm

Bu sorunu çözmek için Başlat\Çalıştır' a tıklayıp, SQL Server' ın setup.exe' sinin yolunu yazıp yanına da bir boşluk bırakıp SAPWD="Şifre" yazmanız gerekir.

Aşağıdaki örnek gibi:

Setup.exe SAPWD="SA-S1frem"

SQL Server Versiyonu SQL Server 2000 MSDE

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Msg 8152, Level 16, State 4, Line 1 String or binary data would be truncated. The statement has been terminated."

Hata Açıklaması

Bir tabloda bulunan sütundaki karakter uzunluğundan fazla karakter girmeye çalışırsanız bu hata ile karşılaşırsınız ve bilgi girme işleminiz iptal olur.

Meselâ "Tablom" adında bir tablonuz var ve şeması da aşağıdaki gibi:

CREATE TABLE Tablom(No Int Identity(1,1) PRIMARY KEY,Ad nvarchar(10),Soyad nvarchar(10),)

Bu tabloya eğer aşağıdaki gibi bir veri girmeye çalışırsanız sorun olmaz:INSERT INTO Tablom VALUES('Ekrem', 'Önsoy')

Fakat şöyle bir veri girmeye çalışırsanız hata alırsınız:INSERT INTO Tablom VALUES('Abdulrezzak', 'Önsoy')

Çünkü "Abdulrezzak" adı, tabloyu oluştururken "Ad" sütununa atadığımız 10 karakterlik uzunluğu geçmektedir. Bu nedenle de veri kaydedilemez ve işlem bu hata ile sonuçlanır.

Page 13: SQL Server Hata Mesajları

Çözüm

Sütununuzun karakter genişliğini arttırın. Meselâ yukarıdaki örneğimizden devam edersek, "Ad" sütununun nvarchar veritipinin karakter genişliğini 15 yaparsak "Adbulrezzak" ismiyle ilgili bir sorun yaşamayız. Tabii diğer isimleri de gözönünde bulundurarak ihtiyacınıza göre daha geniş bir karakter aralığı tanımlayabilirsiniz.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Setup failed to configure the server. Refer to the server error logs and setup error logs for more information."

ya da

"Setup failed to configure the server. Refer to the server error logs and sqlstp.log for more information. "

ve Log dosyasının içinde:

"SQL_Latin1_General_CP1_CI_AS -m -Q -T4022 -T3659Connecting to Server ...driver={sql server};server=MyServer;UID=sa;PWD=;database=master [Microsoft][ODBC SQL Server Driver][Shared Memory]General network error. Check your network documentation.[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionRead (recv()). "

Hata Açıklaması

SQL Server 2000' i kurmaya çalıştığınız bilgisayar adı büyük ve küçük harflerden karmaşık bir şekilde oluşuyorsa veya bilgisayar adının tamamı küçük harflerden oluşuyorsa bu hatayı alırsınız.

Örnek: "BiLGiSaYaRıM", "bilgisayarım".

Çözüm

Bilgisayar adınızı aşağıdaki örnekteki gibi değiştirip SQL Server 2000' ininizi tekrar kurmayı deneyin.

Örnek: "BILGISAYARIM"

Daha fazla bilgi için aşağıdaki adresi kullanabilirsiniz:http://support.microsoft.com/kb/285100

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Msg 3159, Level 16, State 1, Line 1

The tail of the log for the database "Sirketim" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.

Msg 3013, Level 16, State 1, Line 1RESTORE DATABASE is terminating abnormally."

Hata Açıklaması

Bu hata mesajını bir veritabanını açmaya (Restore) çalıştığınızda alırsınız.

Hatanın nedeni ise, açmaya çalıştığınız veritabanının kopyasının, üzerine açmaya çalıştığınız veritabanından daha eski olmasıdır.

Meselâ "Sirketim" isimli veritabanınızın yedeğini en son 22 Aralık 2007 tarihinde aldınız. Bundan sonra veritabanı üzerinde tasarım olarak veya veri girişi olarak güncellemeler oldu. Ayın 23' ünde, ayın 22' sinde aldığınız yedeği bir nedenden dolayı Sirketim veritabanının üzerine açmak istediniz. İşte o zaman bu hatayı alırsınız.

Çözüm Aslına bakarsanız bu bir çeşit koruma sistemidir. Maksat, yeni verilerinizin üzerine yanlışlıkla eski verilerinizin yazılmasını önlemektir ve bu özellik SQL Server 2005 ile birlikte geldi.

Bu koruma sistemini açmak için (ki aslında uyarı mesajının içerisinde de çözümü söylüyor) iki yöntem kullanabilirsiniz.

1. Yöntem: Veritabanınızın en güncel Log yedeğini alarak (NO_TRUNCATE ve NORECOVERY parametrelerini kullanarak), yedeğinizi mevcut veritabanının üzerine açabilirsiniz.

Page 14: SQL Server Hata Mesajları

2. Yöntem: Bu yöntemde RESTORE komutuyla birlikte REPLACE parametresini kullanarak (hiç yedek almadan) eski yedeğinizi halihazırdaki veritabanınızın üstüne açabilirsiniz. Bu yöntemde dikkate almanız gereken şey, bu açtığınız yedeği aldığınız tarihten sonra veritabanınızdaki yapılan tüm değişiklikler kaybolacaktır.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Generating user instances in SQL Server is disabled. Use sp_configure 'user instances enabled' to generate user instances."

Hata Açıklaması Visual Studio kullanarak bir veritabanı oluşturmaya çalıştığınızda veya veritabanı ile ilgili başka bir işte bu hata ile karşılaşabilirsiniz.

Çözüm

Eğer SQL Server 2005 Express Edition with Advanced Services kullanıyorsanız, SQL Server Management Studio Express bu paket ile bilirkte geliyor zaten ve kurulum esnasında işaretlemişseniz bu araç da kurulmuş demektir.

Eğer SQL Server 2005 Express Edition kullanıyorsanız, SQL Server Management Studio aracı bu sürümle birlikte gelmez. Bu araç ücretsizdir ve aşağıdaki adresten edinilebilir.

SQL Server Management Studio Express

Bu aracı indirdikten sonra üzerinde çalıştığınız (veritabanı oluşturmaya çalıştığınız) SQL Server Instance' ına bağlanın. Aracın sol üst köşesinde New Query düğmesini göreceksiniz. Buna tıklayın ve açılan sorgu düzenleme penceresine aşağıdaki kodu yazın ve çalıştırın:

==============================EXEC sp_configure  'user instances enabled', 1;GORECONFIGUREGO==============================

Bu kod, "User Instances" seçeneğini etkin hale getirecektir. Böylece bu hatayı almayacaksınız.

"User Instance" Hakkında daha fazla bilgi için... (İngilizce)

SQL Server Versiyonu SQL Server 2005 Express Edition

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) (Microsoft SQL Server, Error: 233)"

Hata Açıklaması SQL Authentication modunda bir SQL Login ile SQL Server' ınıza giriş yapmaya çalıştığınızda bu hata ile karşılaşabilirsiniz.

Çözüm Ben bu hata ile iki kere karşılaştım şimdiye kadar ve ikisinde de ilgili kullanıcılar doğru sandıkları bir şifre ile ve SQL Login kullanarak SQL Server' a bağlanmaya çalışıyorlardı.

Misal olarak, kullanıcının bilgileri aslında aşağıdaki gibi:Kullanıcı adı= saKullanıcı şifresi = xxx

Ama kullanıcı aşağıdaki bilgilerle giriş yapmaya çalışıyor:Kullanıcı adı= saKullanıcı şifresi = xyx

Şifresinin doğru olduğundan emin, ama aslında değil. Yani demeye çalıştığım şu, eğer bu hata ile karşılaşıyorsanız şifrenizin doğru olduğundan emin olun.

Bu hata ile ilgili daha ayrıntılı bilgiye ilgili SQL Error Log' undan ulaşabilirsiniz. SQL Server' da doğrudan kullanıcıya verilen ve güvenlikle ilgili olan hata mesajlarının üzerleri güvenlik nedeniyle kapalıdır. Güvenlik konusunda SQL Server' ın verdiği hata mesajlarını daha iyi anlayabilmek için SQL Error Log' una bakmakta çok fayda vardır.

Meselâ yukarıdaki hatanın bahsettiğim iki gördüğüm örnekte de SQL Error Log' daki karşılığı şuydu:

Page 15: SQL Server Hata Mesajları

"Login failed for user '...'. (Microsoft SQL Server, Error: 18456)

Bu da, '...' kullanıcısı için girilen şifre yanlış demektir.

Not:Bu durumda hata mesajını mesaja göre değil, hata numarasna göre yorumluyorum. Başka durumlarda ve hata mesajı numaralarında hatanın sebebi daha farklı olabilir.

Ayrıca, bu hatayı bir hesabın durumunun (Status) kullanılamaz (Disabled) olması durumunda da alabilirsiniz.

SQL Server' da varsayılan olarak "sa" hesabının durumu kullanılamazdır (Disabled). Hesabınızı kullanılabilir (Enabled) yaptığınızda da bu sorunu çözebilirsiniz. Bunun için SSMS' i açın ve Security\Logins düğümüne gidin. Orada ilgili kullanıcıyı seçip özelliklerine gidin ve "Status" seçeneğini uygun şekilde ayarlayın.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The instance name specified is invalid."

Hata Açıklaması SQL Server MSDE kurmaya çalıştığınızda bu hata mesajı ile karşılaşabilirsiniz.

Çözüm

Sorun (şimdiye tecrübe ettiğim tüm örneklerde), kurmaya çalıştığınız SQL Server instance' ının zaten önceden de aynı sistemde kurulu olmasından kaynaklanıyor.

Meselâ bilgisayarınızda herhangi bir SQL Server versiyonu ve sürümünün Default Instance (Varsayılan Örnek)' ı var. Siz de MSDE' yi kurmak için Setup.exe' sinin üstüne çift tıklayıp çalıştırdığınızda veya güçlü bir SA şifresi girerek komut satırından çalıştırmayı denediğinizde (eğer INSTANCENAME seçeneğini kullanmamışsanız) MSDE, SQL Server' ı Default Instance olarak kurmaya çalışacaktır. Bir sistemde sadece bir tane SQL Server Default Instance' ı olabileceği kuralından yola çıkarsak, bu şekilde MSDE' yi kuramayacağınız sonucuna varırız.

"The instance name specified is invalid." hata mesajını aldıktan sonra MSDE' nin Setup' ını aşağıda verdiğim örneği kendi ortamınıza uyarlayarak çalıştırırsanız sorununuzun büyük ihtimalle çözüleceğini umuyorum.

C:\MCDE\Setup.exe INSTANCENAME="TestInstance" SAPWD="gUcLuS@S1fr3M"

SQL Server Versiyonu SQL Server 2000 MSDE

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE."

Hata Açıklaması Recovery Model' ı SIMPLE olan bir veritabanınızın Transaction Log yedeğini almaya çalıştığınızda bu hatayı alırsınız.

Çözüm

Recovery Model' ı SIMPLE olan bir veritabanının Transaction Log yedeği alınamaz. Çünkü Recovery Model' ı SIMPLE olan bir veritabanındaki Pasif Sanal Log' lar her Checkpoint' te otomatik olarak silinirler.

Recovery Model' lar konusunda daha fazla bilgi almak için "Recovery Models: FULL, BULK LOGGED, SIMPLE" isimli makalemi okuyabilirsiniz.

SQL Server Versiyonu SQL Server 2000, 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The transaction log for database 'verıtabanı adı' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases"

Hata AçıklamasıVeritabanınızda bir işlem yaptığınızda bu hatayı alabilirsiniz. Bu hata, Transaction Log dosyanızda yeteri kadar yer olmadığından, yaptığınız işlemin Transaction Log dosyasına kaydedilememesinden kaynaklanmaktadır.

Çözüm Transaction Log dosyanızın, yaptığınız işlemi kaldırabilecek kadar büyük olduğundan emin olun.

Page 16: SQL Server Hata Mesajları

Meselâ bazı ortamlarda DML işlemlerinin çok sık olduğunu, fakat Transaction Log dosyasının Auto Growth seçeneğinin sadece 1MB veya 5-10% olduğunu görüyorum. Performans açısından çok büyük bir darbedir bu. Ayarlarınızı tekrar gözden geçirmelisiniz. Hatta bazıları Auto Growth' u kullanmıyorlar ve böylece Transaction Log dosyası dolduğunda veritabanınız kullanılamaz hale geliyor.

Eğer Transaction Log dosyanız için Auto Growth (Otomatik büyüme) seçeneği ortamınıza göre uygun bir şekilde ayarlanmamışsa, ayarları tekrar gözden geçirin.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.) (Microsoft SQL Server, Error: 11001)"

Hata Açıklaması

Varolmayan bir SQL Server sunucusuna bağlanmaya çalıştığınızda bu hatayı alırsınız.

Bununla ne demek istiyorum? Şunu, meselâ başka bir sanal veya fiziksel sunucudaki SQL Server Instance' ına bağlanmak için SQL Server Configuration Manager' da bir Alias oluşturdunuz. Bağlanmak istediğiniz SQL Server sunucusunun adı "Sunucum" olsun. Fakat Alias' ı ayarlarken "Server" kısmına "Sunucum" yazacağınıza "Sunucu" yazdınız. Bu durumda ağınızda "Sunucu" isminde bir sunucu olmadığından yukarıdaki hata mesajını alırsınız.

ÇözümSanırım bu bölüme pek gerek kalmadı, ama ben gene de Alias' ta veya Connection String' te veya GUI' yi kullanırken doğru sunucu adını kullandığınızdan emin olun demeden geçemeyeceğim.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.) (Microsoft SQL Server, Error: 10060)"

Hata Açıklaması

Ben bu hata mesajı ile karşılaştığımda bir Alias kullanarak bir sanal makinedeki SQL Server Instance' ıma bağlanmaya çalışıyordum.

Alias' taki Sunucu ve SQL Server Instance adı doğruydu, fakat port numarası yanlıştı.

Çözüm

Bağlanmaya çalıştığınız SQL Server Instance' ının port numarasının doğru olduğundan emin olun. Port numarası ayarları için SQL Server Configuration Manager' ı kullanabilirsiniz.

Benim durumumda Alias' taki port numarasını düzeltince sorun çözüldü.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı

"Unable to start mail session (reason: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: Mail configuration information could not be read from the database. > System.Data.SqlClient.SqlException: profile name is not valid"

Hata Açıklaması

Bu hatayı habergrubundan bir kullanıcının aldığını gördüm ve arşivlemek istedim. Sözkonusu kullanıcı bir Mail Profile ve Account oluşturmuş. Test postası da gönderebildiğini söylüyor. Fakat bu hesabı SQL Server Agent' ta kullanmak istediği zaman bu hatayı alıyor.

SQL Server Agent' ın özelliklerindeki Alert System' dan Mail Profile' ı Enable etmesini tavsiye etmiştim. Bunu da kontrol etmiş ve bu ayar da tammış. Sorunun çözümü ise çok ilginç.

Çözüm Sorunu yaşayan kişi Microsoft' ta bir "Case" açtığını söyledi ve ona çözüm olarak şunu önermişler:

Page 17: SQL Server Hata Mesajları

- Surface Area Configuration' dan Database Mail' i Disable durumuna getir,- SQL Server Agent Servisini durdur ve tekrar başlat,- Surface Area Configuration' dan Database Mail' i Enable durumuna getir.

Çözüm bu ve işe yaramış.

Olur ya bir gün sizin veya benim de işime yarayabilir.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing 'veritabanı_adı' database. (Microsoft.SqlServer.Smo)"

Hata AçıklamasıEğer işlem yaptığınız SQL Server Instance' ınızda açmak (Restore) için belirttiğiniz veritabanı adında bir veritabanı zaten varsa ve açmak istediğiniz veritabanından farklı bir veritabanıysa bu hatayı alırsınız.

Çözüm

Meselâ kullandığınız SQL Server Instance' ında "Aksu" isminde bir veritabanınız var. Bir de "Kartel" veritabanına ait yedek dosyanız (*.bak) var, eğer bu yedek dosyasını SQL Server Instance' ınızda "Aksu" veritabanı adını kullanarak açmaya çalışırsanız bu hatayı alırsınız çünkü ikisi de farklı veritabanlarıdır.

Bu nedenle açmaya çalıştığınız "Kartel" veritabanının yedeği için ya "Kartel" ismini veritabanı adı olarak kullanın, ya da o anda çalıştığınız SQL Server Instance' ında varolmayan bir veritabanı ismi kullanın.

SQL Server Versiyonu SQL Server

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı"The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step."

Hata Açıklaması Bu hata mesajını bir kaç yedek dosyasını arka arkaya açmak istediğinizde alabilirsiniz.

Çözüm SQL Server' da yedek dosyanızdan geri dönmek istediğinizde ve eğer birden fazla yedek açacaksanız (Restore) o zaman ilk yedekten başlayıp en sondan bir önceki yedeğe kadar RESTORE komutuyla birlikte WITH NORECOVERY anahtarını da kullanmanız gerekir.

Meselâ "Sirketim" isminde bir veritabanınız olduğunu varsayın. Haftada bir kere tam (FULL), diğer günler de fark (DIFFERENTIAL) yedeğini alıyorsunuz.

Pazar = FULLPazartesi = DIFFRENTIALSalı = DIFFRENTIALÇarşamba = DIFFRENTIALPerşembe = Veritabanınız bozuldu ve eskisini silip yedekten dönebildiğiniz kadar dönmeye çalışacaksınız.

Şu yolu takip edersiniz:1- RESTORE DATABASE [Sirketim] FROM  DISK = N'C:\test\Sirketim.bak' WITH FILE = 1,  NORECOVERY2- RESTORE DATABASE [Sirketim] FROM  DISK = N'C:\test\Sirketim.bak' WITH FILE = 4,  RECOVERY

Dikkat ederseniz ilk adımda RESTORE işlemiyle veritabanımın yedeğini açarken "NORECOVERY" anahtarını kullandım. Bu, şu anlama geliyor: "Bu, açacağım son yedek değil, bundan sonra daha açacaklarım var." İşte bu nedenle en son açacağımız yedeğe kadar "NORECOVERY" anahtarını kullanmalıyız.

En son yedekte ise gördüğünüz gibi "RECOVERY" anahtarını kullandım. Bu da şu anlama gelir: "Bundan sonra artık açacağım herhangi bir yedek yok. Bu nedenle artık dosyamı kullanılabilir hale getir".

Evet, "kullanılabilir hale getir." diyorum, çünkü bir yedeği "NORECOVERY" anahtarı ile açarsanız o veritabanını kullanamazsınız. Ne sorgulayabilirsiniz ne de yeni bir kayıt ekleyip değiştirebilirsiniz.

Page 18: SQL Server Hata Mesajları

"NORECOVERY" anahtarına alternatif olarak "STANDBY" anahtarını da kullanabilirsiniz. İşlev olarak aynı işlevi görecektir, fakat "STANDBY" anahtarının "NORECOVERY" anahtarına göre olan farkuı şudur: Bir veritabanını "STANDBY" anahtarını kullanarak açarsanız, o veritabanının üstüne daha başka yedekler de açabilirsiniz. Bunun yanında o veritabanını "NORECOVERY" nin aksine, sorgulayabilirsiniz de. Fakat sadece SELECT komutuyla sorgulayabilirsiniz, o kadar. Yani yeni bir kayıt ekleyemez, veri değiştiremez veya silemezsiniz. Ayrıca STANDBY ile açtığınız veritabanının üstüne başka bir yedek daha açtığınızda, o anda veritabanına bağlı olan kullanıcılar otomatik olarak veritabanından dışarı atılırlar. Açma işlemi bittikten sonra tekrar veritabanını sorgulayabilirler elbette.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "The log or differential backup cannot be restored because no files are ready to rollforward. "

Hata Açıklaması Bu hata mesajını bir kaç yedek dosyasını arka arkaya açmak istediğinizde alabilirsiniz.

Çözüm

SQL Server' da yedek dosyanızdan geri dönmek istediğinizde ve eğer birden fazla yedek açacaksanız (Restore) o zaman ilk yedekten başlayıp en sondan bir önceki yedeğe kadar RESTORE komutuyla birlikte WITH NORECOVERY anahtarını da kullanmanız gerekir.

Meselâ "Sirketim" isminde bir veritabanınız olduğunu varsayın. Haftada bir kere tam (FULL), diğer günler de fark (DIFFERENTIAL) yedeğini alıyorsunuz.

Pazar = FULLPazartesi = DIFFRENTIALSalı = DIFFRENTIALÇarşamba = DIFFRENTIALPerşembe = Veritabanınız bozuldu ve eskisini silip yedekten dönebildiğiniz kadar dönmeye çalışacaksınız.

Şu yolu takip edersiniz:1- RESTORE DATABASE [Sirketim] FROM  DISK = N'C:\test\Sirketim.bak' WITH FILE = 1,  NORECOVERY2- RESTORE DATABASE [Sirketim] FROM  DISK = N'C:\test\Sirketim.bak' WITH FILE = 4,  RECOVERY

Dikkat ederseniz ilk adımda RESTORE işlemiyle veritabanımın yedeğini açarken "NORECOVERY" anahtarını kullandım. Bu, şu anlama geliyor: "Bu, açacağım son yedek değil, bundan sonra daha açacaklarım var." İşte bu nedenle en son açacağımız yedeğe kadar "NORECOVERY" anahtarını kullanmalıyız.

En son yedekte ise gördüğünüz gibi "RECOVERY" anahtarını kullandım. Bu da şu anlama gelir: "Bundan sonra artık açacağım herhangi bir yedek yok. Bu nedenle artık dosyamı kullanılabilir hale getir".

Evet, "kullanılabilir hale getir." diyorum, çünkü bir yedeği "NORECOVERY" anahtarı ile açarsanız o veritabanını kullanamazsınız. Ne sorgulayabilirsiniz ne de yeni bir kayıt ekleyip değiştirebilirsiniz.

"NORECOVERY" anahtarına alternatif olarak "STANDBY" anahtarını da kullanabilirsiniz. İşlev olarak aynı işlevi görecektir, fakat "STANDBY" anahtarının "NORECOVERY" anahtarına göre olan farkuı şudur: Bir veritabanını "STANDBY" anahtarını kullanarak açarsanız, o veritabanının üstüne daha başka yedekler de açabilirsiniz. Bunun yanında o veritabanını "NORECOVERY" nin aksine, sorgulayabilirsiniz de. Fakat sadece SELECT komutuyla sorgulayabilirsiniz, o kadar. Yani yeni bir kayıt ekleyemez, veri değiştiremez veya silemezsiniz. Ayrıca STANDBY ile açtığınız veritabanının üstüne başka bir yedek daha açtığınızda, o anda veritabanına bağlı olan kullanıcılar otomatik olarak veritabanından dışarı atılırlar. Açma işlemi bittikten sonra tekrar veritabanını sorgulayabilirler elbette.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Error: 602: Could not find row in sysindexes for database ID 8, object ID 1, index ID 1.

Page 19: SQL Server Hata Mesajları

Run DBCC CHECKTABLE on sysindexes."

Hata Açıklaması

Bu hatayı iki durumda alabilirsiniz,

1- SQL Server 2000 Instance' ınıza iliştirmek istediğiniz veritabanı, bir SQL Server 2005 (veya üstü) Instance' ında oluşturulmuşsa,

2- Bir SQL Server 2000 Instance' ında oluşturulmuş veritabanınızı, bir SQL Server 2005 Instance' ına iliştirdikten ve ayırdıktan sonra tekrar SQL Server 2000 Instance' ınıza eklemeye çalıştığınızda.

Yani bu durumda, veritabanınızı bir SQL Server 2000 Instance' ınıza iliştiremezsiniz artık. Çünkü yapısı SQL Server 2005 Instance' ına göre ayarlanmıştır.

Çözüm Maalesef bunun için bir çözümüm yok, sadece nedenini bilin diye yazdım bu yazıyı.

SQL Server Versiyonu SQL Server 2000

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "SQLVDI: Loc=CVDS::Cleanup. Desc=Release(ClientAliveMutex). ErrorCode=(288)Attempt to release mutex not owned by caller."

Hata Açıklaması Hotfix

ÇözümBu sorun için bir FIX mevcuttur:

http://support.microsoft.com/kb/934396/en-us

SQL Server Versiyonu SQL Server 2000, SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Cannot find the principal 'test', because it does not exist or you do not have permission. (Microsoft SQL Server, Error: 15151)"

Hata Açıklaması

Bu hata mesajını, SQL Server Management Studio kullanarak bir bir veritabanını bir SQL Server Instance' ına iliştirmeye çalışırken alabilirsiniz.

Nedeni ise, SSMS' te, veritabanınızı iliştirmek için açmış olduğunuz "Attach Databases" penceresindeki "Databases to Attach" bölümünde bulunan "Owner" seçeneğinde geçersiz bir "Login" hesabının bulunmasıdır.

ÇözümSorunu çözmek için, "Attach Databases" penceresindeki "Databases to Attach" bölümünde bulunan "Owner" seçeneğinde, SQL Server Instance' ınızdaki geçerli ve yeterli haklara sahip bir "Login" hesabını seçtiğinizden emin olun.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "System.Data.SqlClient.SqlError: This backup cannot be restored using WITH STANDBY because a database upgrade is needed. Reissue the RESTORE without WITH STANDBY."

Hata AçıklamasıBu hata mesajını, SQL Server 2000 \ 2005 gibi SQL Server 2008' den daha eski SQL Server Instance' larında oluşturulmuş bir veritabanını, "WITH STANDBY..." komutu ile birlikte açmaya (Restore) çalışırken alabilirsiniz.

Çözüm

Kullandığınız SQL Server Instance' ından daha eski bir SQL Server versiyonundan alınan veritabanı yedeğinizi ilk önce "WITH RECOVERY" komutuyla açmalısınız. Eğer daha sonra bu veritabanının tekrar yedeğini alıp "WITH STANDBY" seçeneğiyle açmak istiyorsanız, o zaman bu veritabanının Uyum Düzeyini ("Compatibility Level") Veritabanı Özelliklerinden yükseltmelisiniz.

SQL Server Versiyonu SQL Server 2008

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Page 20: SQL Server Hata Mesajları

Mesaj Başlığı

"System.Data.SqlClient.SqlError: The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\xxx.mdf'. (Microsoft.SqlServer.Smo)"

Hata AçıklamasıBir yedek dosyasını bir SQL Server Instance' ına açmaya çalıştığınızda, eğer SQL Server Servisinizin, yedeği açmaya çalıştığınız klasör için gerekli izinleri yoksa bu hata mesajıyla karşılaşırsınız.

Çözüm

Veritabanı yedeklerinin açma işlemini SQL Server servisi gerçekleştirir. Yedek dosyasının açılması demek, SQL Server servisinin, veritabanınızın dosyalarını yedek dosyasından hedef klasöre açması demektir. Yani SQL Server servis hesabınızın, veritabanı dosyalarının oluşturulacağı hedef klasörde yazma izinlerinin olması gerekiyor.

Bu işlem için SQL Server servisine, hedef klasör üstünde vermeniz gereken yetki ise Yazma (Write) yetkisidir.

SQL Server Versiyonu SQL Server 2008

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Error: The @newname value 'test' is already in use as a OBJECT name and would cause a duplicate that is not permitted. (Microsoft SQL Server, Error: 15335)"

Hata Açıklaması Varolan bir nesnenin ("tablo" veya "view" gibi...) adını değiştirmeye çalıştığınızda, eğer zaten o isimde bir başka nesne varsa bu hata mesajını alırsınız.

Çözüm

Eğer oluşturacağınız nesneyi illa da aynı isimlerde oluşturmak istiyorsanız, o zaman bu nesneler için farklı "Schema" lar kullanmanız gerekir.

Bir "Schema" veya bir "kullanıcı" aynı anda aynı isimli iki nesneye sahip olamaz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

Mesaj Başlığı "Cannot truncate table <veritabani_adi> because it is being referenced by a FOREIGN KEY constraint."

Hata Açıklaması Bir başka tabloda FOREIGN KEY olarak referans gösterilen bir tablonun içeriğini TRUNCATE TABLE komutuyla silmeye kalkarsanız bu mesajı alırsınız.

Çözüm

Eğer başka bir tablo tarafından FOREIGN KEY olarak referans gösterdiğiniz bir tablonun içeriğini silmek istiyorsanız o zaman DELETE FROM komutunu kullanabilirsiniz.

Alternatif olarak, FOREIGN KEY ilişkisini koparırsanız o zaman TRUNCATE TABLE komutunu kullanabilirsiniz.

SQL Server Versiyonu SQL Server 2005

İşletim Sistemi Bu sorunla tüm versiyonlarda karşılaşılabilir.

KAYNAK: http://www.ekremonsoy.net/makaleler/hatalar/hata59.aspx