Привет всем, я пишу хранимую процедуру в SQL для списка, как, например, у меня есть список элементов, и я хочу добавить еще один, поэтому я получаю MAX (columName), и я добавляю +1, который результаты в последнем варианте. Единственное, что я фильтрую по человеку. Это значит, что я тоже могу видеть чей-то список и добавлять в него вещи. Ну, моя хранимая процедура не работает, когда у кого-то еще нет элемента. Как я могу проверить, существует ли он первым?
DECLARE @MAXID INT
SET @MAXID = (SELECT MAX(priority)+1
FROM Chores
WHERE userID = @user)
UPDATE Chores
SET userID= @user,
priority = @MAXID
FROM
Chores WITH (NOLOCK)
WHERE choreID= @iD
Результаты, которые я получаю, когда я запускаю это, я получаю Null
по номеру приоритета для элемента. Я предполагаю, потому что он не нашел MAX()
чего-либо
. Как вы можете видеть, я добавляю +1 к списку предметов данного человека, но у меня есть нулевое значение, если пользователь не ' что-то уже есть в их списке. Я считаю, что могу сделать If Exists (), но как это будет работать, если я объявлю и установлю значение из get go. Также передаются другие параметры, поэтому я не объявляю их.