C # SQL: Как я могу увеличить целочисленное значение в базе данных на одну для нескольких записей? - PullRequest
1 голос
/ 10 июня 2011

Я ищу лучший способ обновить значение, которое я храню в следующей структуре:

Таблица: Страницы

Поля:

  1. id (int)
  2. bookid (int)
  3. pageorder (int)
  4. имя файла (строка / varchar)

Итак, яиметь заказ книги и номер страницы.Мне нужно вставить страницу до того, как у меня появится номер страницы, скажем, 25, и обновить все остальные страницы, чтобы добавить 1 к значению их порядка страниц.

Могу ли я сделать это без перетягивания списка и циклического выброса егозапускать обновления или это лучший способ?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 10 июня 2011
declare @newpage int
set @newpage = 25
update pages set pageorder = pageorder +1 where pageorder >= @newpage and bookid = @bookid

как то так?

2 голосов
/ 10 июня 2011

строго с SQL, вот так

update pages 
set pageorder = pageorder + 1
where bookid=@bookid
and pageorder >= @pageorder;

insert into Pages
(id,bookid,pageorder,filename)
values
(@id,@bookid,@pageorder,@filename);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...