Как обновить и заказать при помощи мс sql

A Controller - это связующее звено между вашей бизнес-логикой и выполненными запросами. Хотя он может содержать довольно много функций, все они должны быть специфичными для рассматриваемого целевого запроса.

Небольшое описание контроллера, вы найдете похожие случаи:

Контроллеры - это клей, который связывает модели, представления и другие компоненты вместе в работоспособное приложение. Контроллеры отвечают за непосредственное отношение к запросам конечных пользователей. Таким образом, контроллеры

Понимая, что для того, чтобы ваши контроллеры были сосредоточены, вам нужно задать себе вопрос: передается ли эта функция контроллеру? ] способ организации их MVC. Вы заметите, что они разделили все authentication запросов в AuthController.

Этот AuthController отвечает за:

-> захват запроса POST, который будет содержать пароль и электронную почту (или любой другой метод, который вы создали).

-> Аутентифицировать пользователя в случае успеха; -> перенаправить на правильные представления в зависимости от результатов для auth (вернуться на страницу входа или показать панель мониторинга);

Самое позднее - это то, где вы должны начать организовывать свой поток. Проверьте это:

-> Если пользователь был успешно аутентифицирован, то вы хотите представить представление dashboard;

-> представление панели мониторинга на самом деле не является частью AuthController более непосредственно связан с DashboardController. Итак, вы на самом деле захотите перенаправить с AuthController на DashboardController через routes;

Так что ответ на ваш вопрос, это зависит! Если логика, которую вы добавляете в свой контроллер, фокусируется на определенном секторе бизнес-логики вашего приложения, не беспокойтесь о количестве methods, которое у вас может быть. Все это действительно зависит от сложности вашего приложения;

НО , если ваш контроллер начинает использовать методы, которые делают много разных вещей для разных секторов вашего приложения, допустим, у вас есть контроллер, который :

->creates products
->deletes products;
->Authenticates users;
->list users;
-> etc

Тогда вы делаете это неправильно и не разделяете бизнес-логику соответствующим образом.

Ответственность контроллера состоит в том, чтобы склеить запрос с правильной бизнес-логикой, а затем перенаправить все данные в правильное представление для их отображения. Он не должен знать о:

-> How the data is fetched (doing the Model job);
-> How the data should be parsed for display (doing the Marshaller job);
-> Checking if the data exists (doing the Hydrator job);
 among other concerns. It literally does:


1. Oh! got a request from route `list/users`;
2. To list users I better call all users in my database (Call the Model);
3. Right, I believe they should be here, lets tell the view to be generated;
4. Here you go view, you list them as you wish, I dont really care;

Надеюсь, это поможет!

49
задан Juan Mellado 1 May 2012 в 02:49
поделиться

4 ответа

Можно сделать подзапрос, где Вы сначала получаете идентификаторы лучших 10, заказанных приоритетом, и затем обновляете тех, которые находятся на этом запрос sub:

UPDATE  messages 
SET status=10 
WHERE ID in (SELECT TOP (10) Id 
             FROM Table 
             WHERE status=0 
             ORDER BY priority DESC);
43
ответ дан rene 7 November 2019 в 11:22
поделиться
WITH    q AS
        (
        SELECT  TOP 10 *
        FROM    messages
        WHERE   status = 0
        ORDER BY
                priority DESC
        )
UPDATE  q
SET     status = 10
100
ответ дан Quassnoi 7 November 2019 в 11:22
поделиться
UPDATE messages SET 
 status=10 
WHERE ID in (SELECT TOP (10) Id FROM Table WHERE status=0 ORDER BY priority DESC);
1
ответ дан dotjoe 7 November 2019 в 11:22
поделиться

Как указано в комментариях ниже, можно использовать также НАБОР пункт ROWCOUNT, но только для SQL Server 2014 и более старый.

SET ROWCOUNT 10

UPDATE messages
SET status = 10 
WHERE status = 0 

SET ROWCOUNT 0
[еще 114] информация: http://msdn.microsoft.com/en-us/library/ms188774.aspx

Или с временной таблицей

DECLARE @t TABLE (id INT)
INSERT @t (id)
SELECT TOP 10 id
FROM messages
WHERE status = 0
ORDER BY priority DESC

UPDATE messages
SET status = 10
WHERE id IN (SELECT id FROM @t)
0
ответ дан Jhonny D. Cano -Leftware- 7 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: