Обновить столбец порядка отображения для нескольких записей в одном операторе - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю приложение на C # / ASP.NET, которое вызывает хранимую процедуру для обновления базы данных.

У меня есть таблица в SQL Server со столбцом для управления отображением порядка сортировки в окнах вывода / печатных листах.

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

Я пытаюсь обновить все продукты (в данном случае) одновременно. Я ТОЛЬКО обновляю столбец «Порядок сортировки» в этом вызове, но хочу избежать одного попадания в базу данных для каждого продукта.

Мне удалось заставить его работать, передав идентификатор продукта в хранимую процедуру, но я удивился, каким-то образом передав список.

UPDATE Products SET ProductSortOrder = 2 WHERE ProductID = 1

Я бы хотел попасть в базу данных один раз и выполнить там обработку, чтобы проанализировать список и обновить записи на основе значения списка. Я бы пропустил что-то вроде [ProductID1]|[SortOrderValue1],[ProductID2]|[SortOrderValue2] и разделил бы его на ,, затем перебрал и разделил каждое из них на | и передал бы это в оператор обновления.

Я не уверен, возможно ли это или как это сделать в SQL Server.

1 Ответ

1 голос
/ 17 апреля 2019

Вы можете передать переменные таблицы в хранимую процедуру

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

Вы можете сделать свою вставку в одном операторе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...