Хорошо, поэтому я пишу хранимую процедуру SQL Server 2008 (техническое обслуживание script).
При этом, будучи хорошим мальчиком, я сделал много обработки ошибок, проверил количество строк, распечатывал выходные сообщения и т.д.
Но, делая это, я обнаружил, что снова и снова пишу что-то вроде этого:
SELECT @RowsAffected = @@ROWCOUNT
IF @RowsAffected > 0
BEGIN
PRINT CAST(@RowsAffected, NVARCHAR(2)) + 'rows updated.'
END
Или отлаживать такие сообщения:
PRINT 'User ' + CAST(@UserId AS NVARCHAR(5)) + ' modified successfully'
Есть ли способ создать своего рода "подпрограмму" внутри хранимой процедуры (например, частный метод), который может принимать что-то в качестве параметра (не обязательно) и делать некоторую логику?
Я хочу сделать что-то вроде этого:
CheckRowCounts
Или это:
PrintUserUpatedMessage(@UserId)
который затем выполнил бы вышеуказанную логику (проверьте количество строк, сообщение печати и т.д.)
И да, очевидно, я могу создать UDF, но тогда мне нужно будет создать/удалить его и т.д., так как эта логика требуется только для выполнения этой хранимой процедуры.
Из-за усталости писать один и тот же код снова и снова, и меняя все разные области, я использовал его, когда получаю сообщение об ошибке =)
Может ли кто-нибудь помочь?
ИЗМЕНИТЬ
Итак, я закончил создание скалярной функции UDF (кажется только способом).
Тем не менее, я получил правильный ответ Fredrik, хотя я не планирую его реализовывать, это как правильный ответ, так и творческий.
Спасибо за все советы/помощь.