Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

SQL zapisanie w rekordzie nazwy zalogowanego użytkownika

#11
RE: SQL zapisanie w rekordzie nazwy zalogowanego użytkownika
Uporałem się z problemem. 
Kod ostateczny: 
Spoiler
Kod:
use SERWIS
go
CREATE  TRIGGER serwisant_trigger
ON naprawa
AFTER update
as

declare
@IDNAPRAWA int,
@OPIS_NAPRAWY_OLD char (40),
@OPIS_NAPRAWY_NEW char (40)


 -- sekcja declare
IF UPDATE (OPIS_NAPRAWY)
begin
    SELECT
        @IDNAPRAWA = IDNAPRAWA,
        @OPIS_NAPRAWY_OLD=OPIS_NAPRAWY
        FROM DELETED
    SELECT @OPIS_NAPRAWY_NEW=OPIS_NAPRAWY
        FROM INSERTED
        

 if @OPIS_NAPRAWY_OLD != @OPIS_NAPRAWY_NEW  
     -- ZMIANA SERWISANTA
      begin
      UPDATE NAPRAWA
        SET SERWISANT=CURRENT_USER
            WHERE IDNAPRAWA = @IDNAPRAWA
     end
 end
 GO


Drugi warunek IF nie chciał się wykonać ponieważ OPIS_NAPRAWY domyślnie miał wartość NULL.
  1. Nieobsługiwane są NULLe przy podstawianiu wartości z DELETED i INSERTED.
Zmieniłem default na ('brak informacji'). 

Gotowe ! Wesoły
 System operacyjny: windows_ten Przeglądarka: chrome
#12
RE: SQL zapisanie w rekordzie nazwy zalogowanego użytkownika
Możesz zamienić porównanie/przypisanie na takie, które radzi sobie z NULLem. Np. użyj ISNULL lub COALESCE. Na przykład: ISNULL(At1,'')<>ISNULL(At2,'') lub SELECT AtOPIS_NAPRAWY_NEW= ISNULL(OPIS_NAPRAWY,'')
FROM INSERTED
 System operacyjny: linux_fedora Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (SQL zapisanie w rekordzie nazwy zalogowanego użytkownika)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [SQL]procedura zliczania czasu CTRL85 0 13203 17.02.2018, 12:58
Ostatni post: CTRL85
  Tutoriale: Tworzenie raportów z wykorzystaniem SQL. Cixi 3 11120 29.03.2017, 08:23
Ostatni post: koneton
  "pisanie" aplikacji wykorzystująca bazę sql Cixi 2 10292 20.12.2016, 17:07
Ostatni post: Cixi

Skocz do: