SSMS'de, değişiklikleri kaydetmeye izin verilmiyor hata iletisi
Bu makale, SQL Server Management Studio'da (SSMS) bir tabloyu kaydetmeye çalıştığınızda hata iletisi almanıza neden olan sorunu geçici olarak çözmenize yardımcı olur.
Özgün ürün sürümü: SQL Server
Orijinal KB numarası: 956176
Belirtiler
SQL Server management Studio'da, Tasarımcı kullanarak tabloda değişiklik yaptıktan sonra tabloyu kaydetmeye çalıştığınızda aşağıdaki hata iletisini alabilirsiniz:
Değişikliklerin kaydedilmesine izin verilmiyor. Yaptığınız değişiklikler, aşağıdaki tabloların bırakılması ve yeniden oluşturulması gerektirir. Yeniden oluşturulamaz bir tabloda değişiklik yaptınız veya Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle seçeneğini etkinleştirdiniz.
Tabloda aşağıdaki değişikliklerden birini veya daha fazlasını yaptığınızda bu sorun oluşur:
- Bir sütun için Null'lara İzin Ver ayarını değiştirirsiniz.
- Tablodaki sütunları yeniden sıralarsanız.
- Sütun veri türünü değiştirirseniz.
- Yeni bir sütun eklerseniz.
- Tablonun
filegroup
öğesini veya onuntext/image
verilerini değiştirirsiniz.
Neden
Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle seçeneği, SQL Server Management Studio'da varsayılan olarak etkinleştirildiğinden bu sorun oluşur.
Bir tabloyu, tablonun meta veri yapısını değiştirecek şekilde değiştirdiğinizde ve sonra da tabloyu kaydettiğinizde, tablonun bu değişikliklere göre yeniden oluşturulması gerekir. Bu, meta verilerin kaybolmasına ve tablonun yeniden oluşturulması sırasında doğrudan veri kaybına neden olabilir. SQL Server Management Studio (SSMS) Seçenekleri penceresinin Tasarımcı bölümünde Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle seçeneğini etkinleştirirseniz 'Belirtiler' bölümünde belirtilen hata iletisini alırsınız.
Geçici Çözüm
Bu sorunu geçici olarak çözmek için, tablonun meta veri yapısında değişiklik yapmak için ALTER TABLE
Transact-SQL komutlarını kullanın.
Örneğin, MyTable adlı tabloda datetime türündeki MyDate sütununu NULL değerleri kabul etmek üzere değiştirmek için şunları kullanabilirsiniz:
alter table MyTable alter column MyDate7 datetime NULL
Önemli
Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle seçeneğini kapatarak bu soruna geçici bir çözüm bulamamanızı kesinlikle önermeyiz. Bu seçeneği kapatmanın riskleri hakkında daha fazla bilgi için 'Daha fazla bilgi' bölümüne bakın.
Daha fazla bilgi
Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle seçeneğini değiştirmek için şu adımları izleyin:
SQL Server Management Studio'yu açın.
Araçlar menüsünde Seçenekler'e tıklayın.
Seçenekler penceresinin gezinti bölmesinde Tasarımcılar'a tıklayın.
Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle onay kutusunu seçin veya temizleyin ve ardından Tamam'a tıklayın.
Not
Bu seçeneği devre dışı bırakırsanız tabloyu kaydettiğinizde, yaptığınız değişikliklerin tablonun meta veri yapısını değiştirdiği konusunda uyarılmazsınız. Bu durumda, tabloyu kaydettiğinizde veri kaybı oluşabilir.
"Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle" seçeneğini kapatmanın riski
Bu seçeneği kapatmak bir tabloyu yeniden oluşturmaktan kaçınmanıza yardımcı olsa da, değişikliklerin kaybolmasına da neden olabilir. Örneğin, tablodaki değişiklikleri izlemek için SQL Server'da Değişiklik İzleme özelliğini etkinleştirdiğinizi varsayalım. Tablonun yeniden oluşturulmasına neden olan bir işlem gerçekleştirdiğinizde, Belirtiler bölümünde belirtilen hata iletisini alırsınız. Ancak bu seçeneği kapatırsanız tablo yeniden oluşturulduğunda mevcut değişiklik izleme bilgileri silinir. Bu nedenle, seçeneği kapatarak bu soruna geçici bir çözüm bulamamanızı öneririz.
Tablo için Değişiklik İzleme özelliğinin etkinleştirilip etkinleştirilmediğini belirlemek için şu adımları izleyin:
- SQL Server Management Studio'da, Nesne Gezgini'nde tabloyu bulun.
- Tabloya sağ tıklayın ve ardından Özellikler'e tıklayın.
- Tablo Özellikleri iletişim kutusunda, Değişiklik İzleme'ye tıklayın. Değişiklik İzleme öğesinin değeri True ise, tablo için bu seçenek etkinleştirilmiştir. Değer False ise bu seçenek devre dışı bırakılmıştır.
Change Tracking
özelliği etkinleştirildiğinde, tablonun meta veri yapısını değiştirmek için Transact-SQL komutlarını kullanın.
Sorunu yeniden oluşturma adımları
- SQL Server Management Studio'da, Tablo Tasarımcısı aracında birincil anahtar içeren bir tablo oluşturun.
- Bu tabloyu içeren veritabanına sağ tıklayın ve ardından Özellikler'e tıklayın.
- Veritabanı Özellikleri iletişim kutusunda Değişiklik İzleme'ye tıklayın.
- Değişiklik İzleme öğesinin değerini True olarak ayarlayın ve Tamam'a tıklayın.
- Tabloya sağ tıklayın ve ardından Özellikler'e tıklayın.
- Tablo Özellikleri iletişim kutusunda Değişiklik İzleme'ye tıklayın.
- Değişiklik İzleme öğesinin değerini True olarak ayarlayın ve Tamam'a tıklayın.
- Araçlar menüsünde Seçenekler'e tıklayın.
- Seçenekler iletişim kutusunda Tasarımcılar'a tıklayın.
- Tablo yeniden oluşturulma gerektiren değişiklikleri kaydetmeyi engelle onay kutusuna tıklayarak seçin ve ardından Tamam'a tıklayın.
- Tablo Tasarımcısı aracında, var olan bir sütunda Null Değerlere İzin Ver ayarını değiştirin.
- Değişikliği tabloya kaydetmeyi deneyin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin