zakaz dubowania wartosci

0

Witam serdecznie, mam następujący problem: chce robiąc INSERT do bazy MS SQL 2005, sprawdzić czy wcześniej nie jest już wprowadzona w danej krotce wartość, jeśli jest zabronić inserta

INSERT INTO Pacient_Zabieg
                         (id_Pacient, id_Zabieg, idZab, data, notatki)
VALUES        (@id_Pacient,@id_Zabieg,@idZab,@data,@notatki); 
SELECT id_Pacient_Zabieg, id_Pacient, id_Zabieg, idZab, data, notatki FROM Pacient_Zabieg WHERE (id_Pacient_Zabieg = SCOPE_IDENTITY())

chciałbym aby jeżeli dla danego pacjenta , dany zab (idZab) miał przypisany zabieg usunieto , zabronic INSERTA, w innym razie zrobic insert. Dodam, że używam do MS SQL 2005 Visual Studio 2008 c#.

0

To będzie coś w ten deseń:

INSERT INTO Pacient_Zabieg (id_Pacient, id_Zabieg, idZab, data, notatki)
SELECT @id_Pacient,@id_Zabieg,@idZab,@data,@notatki
FROM PacientZabieg WHERE id_Pacient = @id_Pacient AND idZab = @idZab AND id_Zabieg <> 'USUNIETO'

Oczywiście to co widać powyżej to tylko 'szkic'. Generalnie chodzi o to żeby zapytanie zwracało NULL jeżeli ząb usunięto, a jeżeli nie usunięto to ma zwracać rekord co sprawi, że INSERT się wykona. Do powyższego zapytania prawdopodobnie będziesz musiał doJOINować tabelę z zabiegami i 'USUNIĘTO' porównać z opisem zabiegu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1