Как проверить, обновлена ли хранимая процедура TSQL в хранимой процедуре, чтобы создать правильное сообщение?Как узнать, что выполнено восстановление хранимой процедуры TSQL
Пример:
ALTER PROCEDURE [dbo].[pUpdate]
@id uniqueidentifier,
@status int,
@message VARCHAR(100) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
UPDATE [database].[dbo].[user]
SET status = @status
WHERE Id = @id
END
IF (SUCCESSFUL)
BEGIN
@message = 'Success!'
END
Каковы возможные способы проверки в случае успеха без использования параметров снова?
Это то, что я в настоящее время используют:
SELECT COUNT(*)
WHERE status = @status AND id = @id
Есть ли другие способы? Я хочу знать свои знания и рекомендации. Благодарю.
+1, но вы также можете использовать 'IF EXISTS (SELECT 1 FROM database.dbo.user WHERE Id = @id и статус = @status)', который намного лучше, чем 'COUNT (*) 'другой метод это предложение 'OUTPUT' для захвата данных в переменную таблицы @temp. –
@roryap Да, или если @@ ROWCOUNT <> [x] (x - число значений, которое вы хотите обновить), вы можете выбросить ошибку или отменить транзакцию, предоставив вам возможность точно указать, сколько строки, которые вы хотите обновить, если несколько. – Question3CPO