Sql-Server
SQL 將 List<int> 作為 SqlCommand 參數傳遞
我可以將 List 作為參數傳遞給 SqlCommand 嗎?
從 MyTable 中刪除 WHERE 鍵入 @MyParam
command.Parameters.AddValue(“MyParam”,MyList);
我意識到我可以遍歷列表,但我正在尋找更清潔的解決方案。
不,您不能以目前形式
有幾個選項使用 UDF 或 XML 或動態 SQL 來傳遞列表。
關於如何做到這一點的最全面的文章是Erland Sommarskog 的“SQL Server 2005 及以後的數組和列表”
將它們作為表類型參數傳遞,
CREATE TYPE dbo.CategoryTableType AS TABLE ( CategoryID int )
然後在您的程序中使用它
CREATE PROCEDURE usp_UpdateCategories (@tvpNewCategories dbo.CategoryTableType READONLY)
並做類似的事情
delete from dbo.Categories where id in (select CategoryID from @tvpNewCategories) ;