Makale numarası: 956176 - Son Gözden Geçirme: 19 Mart 2009 Perşembe - Gözden geçirme: 3.1

SQL Server 2008'de bir tabloda kaydetmeye çalıştığınızda hata iletisi: "Değişiklikleri kaydetme verilmez"

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir tabloyu değiştirmek için veri tanımlama dili (DDL) kullanın ve sonra tablo, Microsoft SQL Server 2008'de kaydetmeye çalıştığınızda, aşağıdaki iletiyi alabilirsiniz:
Değişiklikleri kaydetme izni yok. Yaptığınız değişiklikler, aşağıdaki tablolarda bıraktı ve yeniden gerektirir. Yapılan ya da sahip yeniden başlatamıyor veya engelle değişiklikler, kaydetme seçeneği etkinleştirilmiş olan bir tabloya değişiklikleri tabloyu yeniden olmasını gerektirir.

Neden

Bu sorun oluşur: Engelle tablo re-creation gerektiren değişiklikleri kaydetme seçeneği etkinse ve tabloya aşağıdaki değişikliklerden birini veya birkaçını yapın:
  • Bir sütun Boşlara izin ver ayarını değiştirin.
  • Tablodaki sütun, yeniden sıralayın.
  • Sütunun veri türünü değiştirin.
  • Yeni bir sütun ekleyin.
Tablonun meta veri yapısını değiştirebilir ve sonra tabloyu kaydedin tablo değiştirdiğinizde, tablonun üstündeki bu değişikliklerden göre yeniden olması gerekir. Tablo re-creation ilgili olarak sırasında bu meta veri kaybına ve doğrudan veri kaybına neden olabilir. <a0>SQL Server Management Studio (SSMS) seçenekleri</a0> penceresinin <a1>Tasarımcısı</a1> bölümünde <a2>Engelle tablo re-creation gerektiren değişiklikleri kaydetme</a2> 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 bulmak için <a0></a0>, tablo için meta veri yapısını değişiklikleri yapmak için Transact-SQL deyimlerini kullanın.

Önemli Bu sorunu gidermek Engelle tablo re-creation gerektiren değişiklikleri kaydetme seçeneğini devre dışı bırakarak işe yaramazsa, kesinlikle öneririz. Bu seçeneği devre dışı riskleri hakkında daha fazla bilgi için "Daha fazla bilgi" bölümüne bakın.

Durum

Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Engelle tablo re-creation gerektiren değişiklikleri kaydetme seçeneği değiştirmek için <a0></a0>, aşağıdaki adımları izleyin:
  1. SQL Server Management Studio'yu (SSMS) açın.
  2. Araçlar menüsünden Seçenekler ' i tıklatın.
  3. <a0>Seçenekler</a0> penceresinin <a1>Gezinti</a1> bölmesinde tasarımcıları ' ı tıklatın.
  4. Seçin veya <a0>Tablo re-creation gerektiren değişiklikleri kaydetme engelle</a0> onay kutusunu temizleyin ve sonra Tamam ' ı tıklatın.
Not Bu seçenek devre dışı bırakırsanız, tabloyu kaydettiğinizde, uyarılırsınız değil, yaptığınız değişikliklerin tablonun meta veri yapısını değiştirdiniz. Bu durumda, tabloyu kaydederken veri kaybı oluşabilir.

"Tablo re-creation gerektiren değişiklikler kaydedilmeden engelle" seçeneğini devre dışı açma riski

Bu seçeneği devre dışı bir tablonun yeniden korunmanıza yardımcı olacak, ancak aynı zamanda kayıp değişiklikler neden olabilir. Örneğin, tabloya yapılan değişiklikleri izlemek için SQL Server 2008 değişiklik izleme özelliğini etkinleştirmek varsayalım. Tabloyu yeniden neden olan bir işlem gerçekleştirdiğinizde, "Belirtiler" bölümünde açıklanan hata iletisini alırsınız. Ancak, bu seçeneği devre dışı bırakmak, tabloyu yeniden olduğunda varolan değişiklik izleme bilgileri silinir. Bu nedenle, bu sorunu gidermek seçeneğini devre dışı bırakarak işe yaramazsa, öneririz.

Değişiklik izleme özelliğini bir tablo için etkin olup olmadığını belirlemek için aşağıdaki adımları izleyin:
  1. SQL Server Management Studio'da, Object Explorer tabloyu bulun.
  2. Tabloyu sağ tıklatın ve sonra da Ö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 doğru ise, bu seçenek, tablo için etkinleştirilir. Değer false ise, bu seçeneği devre dışıdır.

Değişiklik izleme özelliği etkinleştirildiğinde, 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, Tablo Tasarımcısı aracında birincil anahtar içeren bir tablo oluşturun.
  2. Bu tabloyu içeren veritabanı'nı sağ tıklatın ve sonra da Properties ' 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 true olarak ayarlayın ve Tamam ' ı tıklatın.
  5. Tabloyu sağ tıklatın ve sonra da Ö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 true olarak ayarlayın ve Tamam ' ı tıklatın.
  8. Araçlar menüsünden Seçenekler ' i tıklatın.
  9. Seçenekler iletişim kutusunda tasarımcıları ' ı tıklatın.
  10. Kaydetme Tablo re-creation gerektiren değişiklikleri engelle</a1> onay kutusunu tıklatıp seçin ve Tamam'ı tıklatın .
  11. Tablo Tasarımcısı aracı varolan bir sütun Boşlara izin ver ayarını değiştirin.
  12. Tabloya değişikliği kaydetmek bu seçeneği deneyin.

Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt sql2008relnotetools sql2008relnote kbprb KB956176 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:956176  (http://support.microsoft.com/kb/956176/en-us/ )