在一条语句中更新多个记录的显示顺序列

时间:2019-04-15 14:18:35

标签: c# sql sql-server

我正在构建一个C#/ ASP.NET应用程序,该应用程序调用存储过程来更新数据库。

我在SQL Server中有一个表,该表中的一列用于控制输出窗口/打印纸上的显示排序顺序。

[ProductID] [ProductName] [ProductDescription] [ProductSortOrder]

我正在尝试一次更新所有产品(在这种情况下)。我仅在此调用中更新“排序顺序”列,但希望避免一次为每种产品访问数据库。

我能够通过将产品ID传递给存储过程来使其正常工作,但是想知道如何以某种方式传递列表。

UPDATE Products SET ProductSortOrder = 2 WHERE ProductID = 1

我想一次访问数据库,并在那里进行处理以解析列表并根据列表的值更新记录。我将传递类似[ProductID1]|[SortOrderValue1],[ProductID2]|[SortOrderValue2]的内容,并按,进行拆分,然后遍历并按|进行拆分,并将其传递给update语句。

我不确定这是否可行或如何在SQL Server中实现。

1 个答案:

答案 0 :(得分:1)

You can pass a table variable into a stored procedure

https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine?view=sql-server-2017.

You can then do your insert in one statement