Forum
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.
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
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
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