SQL Server 2008 “Saving changes is not permitted. ” sorunsalı
Sql Server 2008 ile veritabanı üzerinde uğraşırken bir tabloya primary key ekliyeyim derken aşağıda görmüş olduğumuz hata mesajını verdi.
ERROR:
“Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.”
Yukarıdaki hata mesajından kurtulmak için yapmamız gerekenler;
MsSql ile .Net’ de sayfalama (paging) yapmak
Ben, sizlere sayfalama yapmak için 2 farklı mssql kodu yazacağım ama bu kodları anlatmadan önce, mysqlde bu iş nasıl yapılıyor ona bakmak gerek. Çünkü benim yazacağım bir mssql kodu mysqldekine benzer yapıda olacaktır.
Mysql’de sayfalama yapmak için LIMIT kelimesini kullanmak yeterlidir.
Örnek mysql komutu yazarsak ;
.Net Connection Strings
.Net teknolojisini kullanarak yapacağınız yazılımlarda size uygun olan aşağıdaki veritabanı bağlantı yollarını kullanabilrisiniz.
SqlConnection (.NET)
Standard Security
Data Source=myServerAddress;Initial Catalog=myDataBase;UserId=myUsername;Password=myPassword;
Trusted Connection
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Connecting to an SQL Server instance
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
Connecting to an SQL Server instance via an IP address
Data Source=192.168.1.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Bu hata asp.net projelerinde sıklıkla yaşanmaktadır. İlgili hatayı düzeltmek için 2 tane çözüm yolumuz bulunmaktadır. Şimdi bu iki çözüm yoluna bakmak istersek eğer;
Çözüm 1 :
Web.config dosyamızın içinde bulunan connectionString’ imize Connect Timeout ekleyerek sorunu çözebiliriz.
MsSql’ de Osql ile veritabanınızı attach edin
Bazen çalıştığınız sunucularda Msql Enterprise Manager olmamaktadır. Sunucu sahibi adamda Msql Enterprise Manage ‘ı güvenlik sebebiyle (!) kurdutmuyorsa, peki biz veritabanını mssql server a nasıl attach edeceğiz?
Aslında yukarıdaki durum azda olsa benim gibi insanların karşısına çıkmaktadır. Eğer böyle bir durumla karşılaşırsanız aşağıdaki anlatacaklarım sayesinde veritabanını mssql servera attach edebileceksiniz.
MsSql’ de veritabanınızın boyutunu shrink ile azaltın
Veritabanınız diskte çok yer kaplıyorsa yada kayıt sildiğiniz halde veritabanınızın diskteki boyutu değişmiyorsa, küçük bir operasyon yapmanız ile boyutunu küçültebileceksiniz.
MsSql’de tablo sütunlarının adlarını almak
MsSql’ de tablo bilgilerini almak için gereken sql kodu ;
MsSql’ de Sql komutu ile attach – detach
Aslında bu olayları yapmak mssql server uygulamalarında basit bir şekilde yapılmaktadır ama bazen ilgili sql kodlarıyla da yapabilmemiz gerekebilmektedir.
Bir veritabanını “Attach”, “Detach” olayını kod yardımıyla yapmak isterseniz tek yapmanız gereken ‘VeritabanıAdı’ yazan yerlere ilgili veritabanınızın ismini yazmaktır.
Aşağıdaki kod ile “Detach” yapabilirsiniz :
MsSql’ de log dosyasını temizlemek
Mssql veritabanı kullanmanın en rezil olayı veritabanının çok fazla yer kaplaması. Evet arkadaşlar bu konuda ben çok acı çektim bari siz çekmeyin diye bu yazıyı yazayım dedim. 🙂 Şimdi diyeceksiniz ne lüzumu var diye? Aslında bu sorunun cevabı oldukça basit : Mesela sizin “.mdf” ve “.log” dosyanızın boyutu 83.3 mb olsun. Aşağıda yazacağım kod sayesinde veritabanınızın boyutu acayip derecede küçülecek.
MsSql’de bir tablodan diğer tabloya veri aktarımı
Bir tablodan diğer tabloya veri aktarımı MsSql’ de gerçekten bazen kabus oluyor. Yada bir veritabanından diğer veritabanına ilgili tabloyu oluşturmak ve içindeki verileri aktarmak.
Yukarıda bahsettiğim durumlar birçok insan için bir kabusdur (Önceden benimde kabusumdu 🙂 ) . İşte bu kabusa son vermek sadece kısa bir sql komutundan geçmekte. 🙂
Etiketler
Son Yazılar
- Uzak sunucuda bulunan android cihaz ile otomasyon
- Mac’ de çoklu Java versiyon yönetimi
- İş yarar docker komutları
- Eski branchlerin git’ den silinmesi
- Kubernetes Süresi Dolmuş Sertifikaları Yenilemek
Son Yorumlar
- Hosting koşuşturması için
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için
- Visual Studio Toolbox’a component(bileşen) eklenmesi için
- “File is too large for destination file system” hatasını gidermek için
- Php’de UTF-8 Türkçe karakter sorunu ve çözümü için
Bağlantılar
Arşivler
- Kasım 2021
- Eylül 2021
- Ağustos 2021
- Temmuz 2021
- Aralık 2020
- Kasım 2020
- Ekim 2020
- Eylül 2020
- Kasım 2017
- Mayıs 2017
- Mart 2017
- Şubat 2017
- Ocak 2017
- Nisan 2015
- Aralık 2014
- Mayıs 2014
- Eylül 2013
- Haziran 2013
- Şubat 2013
- Kasım 2012
- Ekim 2012
- Eylül 2012
- Mart 2012
- Şubat 2012
- Ocak 2012
- Aralık 2011
- Kasım 2011
- Ekim 2011
- Eylül 2011
- Temmuz 2011
- Haziran 2011
- Mayıs 2011
- Mart 2011
- Ocak 2011
- Aralık 2010
- Kasım 2010
- Ekim 2010
- Eylül 2010
- Ağustos 2010
- Temmuz 2010
- Haziran 2010
- Mayıs 2010
- Nisan 2010
- Mart 2010
- Şubat 2010
- Ocak 2010
- Haziran 2009
- Mayıs 2009
- Nisan 2009
- Mart 2009