SQL Server'a bir tablo kaydetmeye çalıştığınızda çıkan hata iletisi: "Değişiklikleri kaydetmeye izin verilmez"

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 956176
Belirtiler
Bir tabloyu değiştirmek için veri tanımlama dili (DDL) kullanın ve sonra Microsoft SQL Server 2008'de tablo kaydetmeyi deneyin, aşağıdaki iletiyi alabilirsiniz:
Değişiklikleri kaydetmeden izin verilmez. Yaptığınız değişiklikler, aşağıdaki tabloların kaldırılmasını ve yeniden oluşturulmasını gerektirir. Ya tablo üzerinde tablonun yeniden oluşturulamayacağı şekilde değişiklikler yaptınız ya da tablonun yeniden oluşturulmasını gerektirecek değişiklikleri önle seçeneğini etkinleştirdiniz.
Neden
Tablo yeniden oluşturma gerektiren değişiklikleri kaydetmeden engelle seçeneğini etkinleştirdiğinizde ve tabloya bir veya daha aşağıdaki değişiklikleri yapın, bu sorun oluşur:
  • Bir sütun için Boşlara İzin ver ayarını değiştirin.
  • Tabloda sütunların yerlerini değiştirin.
  • Sütun veri türünü değiştirin.
  • Yeni bir sütun ekleyin.
Tablo meta veri yapısını değiştirebilir ve sonra da tabloyu kaydedin, bir tabloyu değiştirdiğinizde, tablo bu değişikliklere dayalı yeniden oluşturulmaları gerekir. Tabloyu yeniden oluşturma sırasında bu meta veri kaybına ve doğrudan veri kaybına neden olabilir. SQL Server Management Studio (SSMS) seçenekler penceresi Tasarımcısı bölümünde Tablo yeniden oluşturma gerektiren değişiklikleri kaydetmeden engelle seçeneğini etkinleştirirseniz, "Belirtiler" bölümünde açıklanan hata iletisini alırsınız.
Pratik Çözüm
Bu soruna geçici bir çözüm için tablonun meta veri yapısında değişiklik yapmak için Transact-SQL deyimlerini kullanın. Ek bilgi için SQL Server Books Online'da aşağıdaki konuya bakın:

http://msdn.microsoft.com/en-us/library/ms190273.aspx

Örneğin, MyDate sütun türü DateTime içinde tablo olarak değiştirmek için kullanabileceğiniz NULL değerleri kabul etmek için MyTable adlı:

alter table MyTable alter column MyDate7 datetime NULL

Önemli Bu soruna geçici bir çözüm yeniden oluşturma tablo gerektiren değişiklikleri kaydetmeden engelle seçeneğini kapatarak değil, öneririz. Bu seçeneği kapatma riskleri hakkında daha fazla bilgi için "Daha fazla bilgi" bölümüne bakın.
Durum
Microsoft bunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.
Daha fazla bilgi
Tablo yeniden oluşturma gerektiren değişiklikleri kaydetmeden engelle seçeneği değiştirmek için şu adımları izleyin:
  1. SQL Server Management Studio (SSMS) açın.
  2. Araçlar menüsünde Seçenekler'e tıklayın.
  3. Seçenekler penceresi Gezinti bölmesinde tasarımcıları' nı tıklatın.
  4. Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle onay kutusunu seçin veya temizleyin ve Tamam'a tıklayın.
Not: Bu seçeneği devre dışı bırakırsanız, tabloyu kaydederken uyarılırsınız değil yaptığınız değişiklikleri tablo meta veri yapısını değiştirmiş. Bu durumda, tabloyu kaydettiğinizde, veri kaybı oluşabilir.

"Yeniden tablo oluşturma gerektiren değişiklikleri kaydetmeden engelle" seçeneğinin devre dışı bırakılması riski

Bu seçeneği kapatma, bir tablonun yeniden oluşturmaktan kaçının yardımcı olmakla birlikte, aynı zamanda yapılan değişiklikler kaybolabilir yol açabilir. Örneğin, tablo için değişiklikleri izlemek için SQL Server 2008'de değişiklik izleme özelliğini etkinleştirmek varsayalım. Neden tablo yeniden oluşturulması bir işlem gerçekleştirdiğinizde, "Belirtiler" bölümünde açıklanan hata iletisini alırsınız. Bu seçeneği devre dışı bırakırsanız, tabloyu yeniden oluşturulur, ancak varolan değişikliği izleme bilgileri silinir. Bu nedenle, bu soruna geçici bir çözüm seçeneğini kapatarak değil, öneririz.

Bir tablo için değişiklik izleme özelliğinin etkin olup olmadığını belirlemek için şu adımları izleyin:
  1. SQL Server Management Studio'da Object Explorer' ın tablosunu bulun.
  2. Tabloyu sağ tıklatın ve sonra Özellikler' i tıklatın.
  3. Tablo Özellikleri iletişim kutusunda, Değişiklik izleme' yi tıklatın.
Değişiklik izleme öğesinin değeri Trueise, bu seçeneği tablo için etkinleştirilir. Değer Falseise, bu seçeneği devre dışı bırakılır.

Değiştirme izleme özelliği etkin olduğunda, Transact-SQL deyimlerini tablo meta veri yapısını değiştirmek için kullanın.

Sorunu yeniden oluşturma adımları

  1. SQL Server Management Studio'da Table Designer aracında bir birincil anahtar içeren bir tablo oluşturun.
  2. Bu tablo içeren bir veritabanını sağ tıklatın ve sonra Özellikler' i tıklatın.
  3. Veritabanı özellikleri iletişim kutusunda, Değişiklik izleme' yi tıklatın.
  4. Değişiklik izleme öğesinin değeri Trueolarak ayarlayın ve Tamam' ı tıklatın.
  5. Tabloyu sağ tıklatın ve sonra Özellikler' i tıklatın.
  6. Tablo Özellikleri iletişim kutusunda, Değişiklik izleme' yi tıklatın.
  7. Değişiklik izleme öğesinin değeri Trueolarak ayarlayın ve Tamam' ı tıklatın.
  8. Araçlar menüsünde Seçenekler'e tıklayın.
  9. TasarımcılarSeçenekler iletişim kutusunda'ı tıklatın.
  10. Yeniden oluşturma tablo gerektiren değişiklikleri kaydetmeden engelle onay kutusunu tıklatıp seçin ve sonra tıklatın Tamam.
  11. Tablo Tasarımcısı Aracı'nda varolan bir sütun Boşlara İzin ver ayarını değiştirin.
  12. Tabloda değişiklik kaydetmeye çalışın.
sqlsvr12 sqlsvr2008 "SQL Server 2008 araçları"SQL2008RelNoteTools "Değiştir izleme"

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 956176 - Son İnceleme: 08/07/2016 02:25:00 - Düzeltme: 5.0

Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core

  • kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMttr
Geri bildirim