Linq İle MSSQL De Kolon Ekleme
-
Merhaba arkadaşlar
Başlık mümkün mü?
Yani c# tarafında linq ile tabloya kolon ekleyebiliriz miyiz.
Aslında fikir mülahazası da yapabiliriz.
Programı kullananlar yeni verisyonu aldıklarında sql de bazı tabloların eklenmesi gerekiyor.
Mecburen bağlanıp ben manuel olarak yapmak zorunda kalıyorum.
Bunu pratik olarak nasıl yapabilirim fikri olan?
(bu arada güncelleme alan her bayinin kendi bilgisayarında mssql kurulu. kendi veritabanlarını kullanıyorlar.)
Asayisci tarafından 31/Oca/20 00:56 tarihinde düzenlenmiştir -
linq ile tabloyu degistiremezsin ya da yeni tablo olusturamazsin ama kodunda sql kodu cagirabilirsin.. Yapini tam bilmiyorum ama datacontext'in varsa ExecuteCommand ile sql kodu cagirabilirsin.. örnek
dbContext.ExecuteCommand("ALTER TABLE tablom ADD ekKolon VARCHAR (255) NOT NULL;");
gibiedit: kod eksik eklenmis nedense düzelttim
edit2: sorunun icinde bir de tablo ekleme kismi var. Onu da ayni sekilde yapabilrsin.. sadece create table ... diyeceksin
-
teşekkür ederim dostum. hemen deniyeceğim..
-
unbalanced bunu yazdı
linq ile tabloyu degistiremezsin ya da yeni tablo olusturamazsin ama kodunda sql kodu cagirabilirsin.. Yapini tam bilmiyorum ama datacontext'in varsa ExecuteCommand ile sql kodu cagirabilirsin.. örnek
dbContext.ExecuteCommand("ALTER TABLE tablom ADD ekKolon VARCHAR (255) NOT NULL;");
gibiedit: kod eksik eklenmis nedense düzelttim
edit2: sorunun icinde bir de tablo ekleme kismi var. Onu da ayni sekilde yapabilrsin.. sadece create table ... diyeceksin
Stackoverflowda bu Soru için bu yöntem dışında birde stored procedure kullanılarak bu işlemin yapılabileceğinden bahsedilmiş.
Burada oluşturulan stored procedure için örnek var. Prosedüre gönderilen parametre ile dinamik oluşturuluyor.
https://stackoverflow.com/a/10877522/5646313
Burada hangi yöntem daha kullanışlıdır?
Stored procedure kullanmak mı yoksa ExecuteCommand kullanmak mı?
-
Https bunu yazdı
Burada hangi yöntem daha kullanışlıdır?
Stored procedure kullanmak mı yoksa ExecuteCommand kullanmak mı?
Bu cok genel bir soru hocam. Tum islemi (db) server tarafinda yapmak istiyorsan sp (stored proc) daha kullanislidir. Tabi birden fazla sebepleri var..
buraya göz atilabilir https://codingsight.com/dynamic-sql-vs-stored-procedure/
Eger cok siklikla kolon olusturulmuyorsa basitce sql komut calistirilarak bu is yaptirilabilir, ama DB'de sp olusturabiliyorsaniz ve sürekli cagrilacak bir fonksiyon ise ve isi db server tarafina daha cok yüklemek icin sp daha uygun bi cözüm.. Benim anladigim sadece arada bir cagrilacagi icin arkadasin yönteminin cok bir önemi yok..
Söyle bir not düseyim, sistem nedir ne degildir bilmiyorum. Eger bir serverdaki db'ye tcp/ip üzerinden baglanti yapiliyorsa zaten bu tarz bi iliski sikintili, bu durumda sp daha mantikli. Ama internal'da calisiyorsa ve cok sik cagrilmayacaksa sql execution tercih edilebilir
-
peki oluşturulacak kolonun var olup olmadığını yani daha önce oluşturulup oluşturulmadığını nasıl sorgulayabiliriz?
hata almamak adına...
-
söyle bi sey yapabilirsin hocam.. kolonun varligini kontrol ettirirsin, yoksa ekletirsin.. örnek
IF COL_LENGTH('tablom', 'ekKolon ') IS NULL BEGIN ALTER TABLE tablom ADD ekKolon VARCHAR (255) NOT NULL; END
bu kodu execute ile calistirinca nasil sonuc verir bilmiyorum. Eger calismazsa bir tane stored proc. yazman gerek o zaman. Bu arada sikinti cikmasin diye sema ismini kullanmakta fayda var tablodan önce.. semam.tablom gibi
unbalanced tarafından 31/Oca/20 03:24 tarihinde düzenlenmiştir -
çok teşekkür ediyorum dostum.
-
Exisist column diye ararsan belki bulabilirsin
-
EF kullanıyorsan Context indeki tablona FromSqlRaw ile Sql Cümlesi çalıştırabilirsin.