nasıl yazabilirim ki beni (örneğin) geçmesine bir @IDList
sağlayacak bir saklı yordam oluşturabilirsiniz Geçme: Bu yapılabilir mibir saklı yordam aracılığıyla listesi "nden"
Select * from Foo Where ID in @IDList
?
nasıl yazabilirim ki beni (örneğin) geçmesine bir @IDList
sağlayacak bir saklı yordam oluşturabilirsiniz Geçme: Bu yapılabilir mibir saklı yordam aracılığıyla listesi "nden"
Select * from Foo Where ID in @IDList
?
SQL2005 ile ve doğrudan kodundan bir dizi gönderebilir yukarıda
hepsi aynı "anahtar" (belki bir GUID) ile, masa B'ye bireysel kimliklerini yazın.
Sonra, masa A'ya karşı sorgu
where ID in (select ID from B where key = @TempKey)
(onlarla bittiğinde eğer Ardından anahtarlarını silin olabilir. Ya da, onları damgası ve bunu daha sonra bir sql iş var.) Yer alacak
Artıları:
Eksileri:
... Bu cevaba bakınız.
İlk özel tipini saklı yordam daha
CREATE TYPE Array AS table (Item varchar(MAX))
oluşturun.
CREATE PROCEDURE sp_TakeArray
@array AS Array READONLY
AS BEGIN
Select * from Foo Where ID in (SELECT Item FROM @array)
END
Sonra kullandığınız veritabanı dizisi
DataTable items = new DataTable();
items.Columns.Add("Item", typeof(string));
DataRow row = items.NewRow();
row.SetField<string>("Item", <item to add>);
items.Rows.Add(row);
SqlCommand command = new SqlCommand("sp_TakeArray", connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter param = command.Parameters.Add("@Array", SqlDbType.Structured);
param.Value = items;
param.TypeName = "dbo.Array";
SqlDataReader reader = command.ExecuteReader();
Bu SQL Server 2008 için geçerlidir. –
olarak bir DataTable geçen koddan diyorsun? Hangi Listeyi geçirerek vardır dil? – bstoney