將表值參數清單傳遞給SQL 預存程序
使用與特定記錄相關的多個項目填充資料庫表的場景是資料處理中的一個常見挑戰。雖然傳統方法涉及迭代傳遞參數值或使用字串操作,但可以使用更有效的解決方案。
解決方案:SQL Server 2008 中的表值參數
SQL Server 2008 年引入了表值參數,它允許將結構化資料集作為參數傳遞給儲存過程。這消除了複雜的字串操作或迭代參數處理的需要。
在提供的程式碼中,可以更新「AddItemsToReport」預存程序以接受表值參數:
ALTER PROCEDURE AddItemsToReport ( @ReportId int, @Items AS ItemList -- User-defined table type ) AS BEGIN INSERT INTO ReportItem (ReportId, ItemId) SELECT @ReportId, Id FROM @Items END
項目清單的自訂表格類型
要為項目清單建立自訂表格類型,請執行下列SQL語句:
CREATE TYPE ItemList AS TABLE ( Id int )
從 C# 傳遞表值參數
在 C# 程式碼中,建立自訂表格類型的實例:
var itemList = new ItemList(); itemList.Rows.Add(1); itemList.Rows.Add(2); itemList.Rows.Add(3);
然後,將表值參數傳遞給儲存的過程:
dbCommand.AddInParameter(dbCommand, "Items", DbType.Object, itemList);
表值參數的好處
以上是表值參數如何提升 SQL 預存程序效能和程式碼簡潔性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!