Tworzę pewien system i piszę procedury składowane. I mam pytanie takie - czy jest sens sprawdzania w takiej procedurze prawidłowości jej parametrów? Wszakże i tak baza nie pozwoli na wstawienie niepoprawnych wartości naruszających klucze bądź ograniczenia, ale w ten sposób mogę zwrócić własny kod błędu i komunikat oraz wyświetlić go użytkownikowi.
Jakie są best practices w tej kwestii?
Prosty przykład:
CREATE PROCEDURE [dbo].[ProducenciDodaj]
@nazwa varchar(50),
@komunikat nvarchar(200) output
AS
BEGIN
-- sprawdzenie, czy istnieje już producent o podanej nazwie
IF EXISTS (SELECT id_producenta FROM Producenci WHERE nazwa = @nazwa)
BEGIN
SET @komunikat = 'Błąd dodawania! W bazie już istnieje producent o nazwie: "' + @nazwa + '"'
RETURN -2
END
-- sprawdzenie, czy podana nazwa nie jest pusta
IF LEN(@nazwa) = 0
BEGIN
SET @komunikat = 'Błąd dodawania! Nazwa producenta nie może być pusta.'
RETURN -4
END
-- dodanie nowego rekordu
INSERT INTO Producenci (nazwa)
VALUES (@nazwa)
-- informacje zwrotne
SET @komunikat = 'Dodano producenta o nazwie: "' + @nazwa + '"'
RETURN 0
END