InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: nienacko w Kwiecień 18, 2016, 18:47:50

Tytuł: Blokada wprowadzania duplikatu symbolu u dostawcy
Wiadomość wysłana 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
Tytuł: Odp: Blokada wprowadzania duplikatu symbolu u dostawcy
Wiadomość wysłana przez: dkozlowski w Kwiecień 18, 2016, 19:00:00
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" ?
Tytuł: Odp: Blokada wprowadzania duplikatu symbolu u dostawcy
Wiadomość wysłana przez: nienacko w Kwiecień 18, 2016, 19:20:09
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