Forum

SQL - C# Table Type...
 
Bildirimler
Hepsini Temizle

SQL - C# Table Type Veri Alışverişi

3 Yazılar
3 Üyeler
0 Reactions
1,187 Görüntüleme
(@SemihTUNALI)
Gönderiler: 32
Trusted Member
Konu başlatıcı
 

Selamlar,

SQL SERVER 2016 tarafında çok fazla table type tasarımım var.

Özellikle stackoverflow a baktım, bir de diğer yabancı bloglara... İki konuda aklım biraz karışık, Sn. Yavuz Bey gibi üstatların desteğine ihtiyacım var.
Bocalıyorum birkaç gündür...

C# ile bir SqlCommand oluşturmak istiyorum, temel olarak nasıl setup olacağını biliyorum, çağırdığım bir stored procedure.
Ama veri alıp göndermek için neredeyse yüze yakın table type tasarımım var, bazılarının kolon sayıları, ekleniyor, çıkıyor, bunları tek tek manuel olarak deklare etmek tam bir vakit kaybı.

Bunları ayrı bir stored procedure oluşturarak; "var olan table type isimleri ve bu table type'ların kolon isimleri" şekilinde bir sorgu ile almak istiyorum. Bunları c# daki SqlCommand parametrelerine eklemem gerekiyor sanırım.

Table'lar için select Table_Name varmış. Mutlak sql şemasında table type isimleri ve kolon isimleri de listelenebilir ve c# SqlCommand sınıfına parametre verileri olarak eklenebilir.

Sağlıklı ve güzel bir yöntemi var mıdır ?

Teşekkürler.

 
Gönderildi : 02/01/2018 14:29

(@eravse)
Gönderiler: 1753
Üye
 

Merhaba biraz zor bir tasarım oluyor bu tür yapılar genelde . sp_executesql komutu ile bu ıslemı dınamıklestırebılırsınız

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql

yukarıdaki adreste detalar var. En alttakı sorgu dınamıke dondurulmus olan bır sorgudur sız ıstersenız table name kısmınıda ekleyebılırsınız

 

saygılar

 

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 04/01/2018 02:00

(@erensametcunbul)
Gönderiler: 52
Trusted Member
 

cursor ile tablalolar arasında dolaşarak  şema ve tablo adlarını alabilir, 2. curcorda da sql üzerinden dinamik olarak sorgunuzu oluşturup c# a string olarak gönderebilir oradan da execute sql ile istediğiniz sp yi execute edebilirsiniz. Karmaşık gibi dursada araştırmanız gereken curcor ve string olarak dönen sorguyu execute etmek olmalı.

 

Yol göstermesi açısından küçük bir örnek ; 

 

 

Declare @TablmeSchema nvarchar(50) , @TableName nvarchar(150), @query nvarchar(MAX);

DECLARE Curcor_ CURSOR FOR
SELECT TABLE_SCHEMA as TablmeSchema, TABLE_NAME as TableName FROM INFORMATION_SCHEMA.TABLES
OPEN Curcor_
FETCH NEXT FROM Curcor_ into @TablmeSchema,@TableName
WHILE @@FETCH_STATUS=0
BEGIN
set @query = 'Update [' + @TablmeSchema+ '].['+ @TableName+'] SET State = 1 WHERE State =3';
print @query;
FETCH NEXT FROM Curcor_ into @TablmeSchema,@TableName
END
close Curcor_
Deallocate Curcor_
GO

 
Gönderildi : 10/01/2018 22:58

Paylaş: