0
很多時候我們在項目中傳遞一個從UI到存儲過程的ID列表。大多數解決方案都基於創建SQL字符串拆分函數來創建臨時表並使用臨時表執行某些內部聯接器。 E.T.CLR SQL用戶定義類型傳遞給存儲過程的ID列表
沒有任何一個在創造CLR SQL UDT一些StringList的經驗,我們可以傳遞給用戶PROC
StringList stringList = new StringList();
stringList.Add("ID1");
stringList.Add("ID2");
stringList.Add("ID3");
SqlCommand cmd = new SqlCommand("SelectDataByIDs");
cmd.Parameters.Add(new SqlParameter("list", SqlDbType.Udt){ Value = stringList});
,並在SQL
使用SELECT * FROM DataTable
WEHRE DataId in @stringList -- or inner join?
請分享你的智慧
另一種方法http://stackoverflow.com/questions/11102358/how-to-pass-an-array-into-a-sql-server-stored-procedure我喜歡TVP答案 – Paparazzi
同意 - TVP是方式如果你使用的是SQL 2008或更高版本,那就去吧。 –