InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: nienacko w Kwiecień 18, 2016, 18:47:50
-
Witam,
być może komuś się przyda takie rozwiązanie.
Napisane w przerwie na kawę, ale działa :)
Zapytanie należy wykonać do bazy, warto więc wcześniej zrobić sobie kopię zapasową ;)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*Trigger kontrolujący czy przy dodawaniu lub edycji towaru nie wprowadzono duplikatu symbolu towaru u dostawcy*/
CREATE TRIGGER [dbo].[tr_TwTowar_dup_symb_dost] ON [dbo].[tw__Towar]
FOR INSERT
,UPDATE
AS
BEGIN
DECLARE @symbol VARCHAR(20)
SELECT @symbol = tw_DostSymbol
FROM inserted
IF (@symbol != '')
BEGIN
DECLARE @powt INT
SELECT @powt = COUNT(*)
FROM tw__Towar
WHERE tw_DostSymbol = @symbol
IF (@powt - 1 >= 1)
BEGIN
RAISERROR (
'<msg>Błąd! Duplikat symbolu towaru u dostawcy (zakładka Parametry)</msg>'
,16
,1
)
END
END
END
GO
-
Nie można dodać drugiego towaru/usługi/opakowania bez symbolu u dostawcy. Nie ma informacji jaki towar już posiada powtórzony symbol u dostawcy. Skąd i po co wziął się "ROLLBACK" ?
-
Nie można dodać drugiego towaru/usługi/opakowania bez symbolu u dostawcy. Nie ma informacji jaki towar już posiada powtórzony symbol u dostawcy. Skąd i po co wziął się "ROLLBACK" ?
Faktycznie, błąd z pustym polem zauważyłem już po dodaniu posta, co do Rollbacka to też działa bez niego :)
W pierwszym poście zamieszczam poprawione zapytanie.
Próba wpisania duplikatu symbolu, poskutkuje nam eleganckim błędem