Veja neste DevCast um bate papo descontraído sobre a validação de regras de negócio no banco de dados ou no core do seu aplicativo. Tenha uma ideia dos motivos pelos quais podem ser feitas procedures ou triggers e em que momento o não uso desses recursos pode ser justificado.
Consulta rápida:
ALTER TRIGGER [dbo].[SafeDelete] ON [prova].[dbo].[usuario] FOR DELETE
AS
RAISERROR("O delete foi bloqueado", 16, 1)
ROLLBACK
Declara uma Trigger para o comando DELETE que lançará um erro sempre que esse comando for executado. Para manter a integridade dos dados, também é solicitado o ROLLBACK ao final da Trigger.