首页 > 解决方案 > 更新一条语句中多条记录的显示顺序列

问题描述

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

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

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

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

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

UPDATE Products SET ProductSortOrder = 2 WHERE ProductID = 1

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

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

标签: c#sqlsql-server

解决方案


您可以将表变量传递给存储过程

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

然后,您可以在一个语句中插入


推荐阅读