MSSQL + trigger dla INSERT
gervee - 15-03-2006 10:40
MSSQL + trigger dla INSERT
Witam! Chciałbym założyć na tabeli T1 trigger, który uaktualni dane w tabeli T2 po insercie danych (lub uaktualnieniu danych w jakiejkolwiek z kolumn) do tabeli T1. Tabela T1 (nazwa,wartosc,dataczas,jakosc) tabela T2 tak samo. W tej chwili próbowałem trigger taki jak poniżej ale nie chce zadziałać. Jak powinien wyglądać ten trigger?
CREATE TRIGGER trgLastValues ON [dbo].[T1] INSERT AS BEGIN UPDATE [dbo].[T2] SET [dbo].[T2].nazwa=nazwa, [dbo].[T2].wartosc=wartosc, [dbo].[T2].dataczas=dataczas WHERE [dbo].[T2].nazwa LIKE "obiekt1.parametr1"
PRINT "Wykonano" END
Rafał
LQ - 15-03-2006 10:40
"FOR INSERT" co to objekt.... w ostatniej linijce? jaki error ci wywala
gervee - 15-03-2006 10:40
Użytkownik " LQ" <lq@lq.lq> napisał w wiadomości news:dv6rqp$9ns$1@nemesis.news.tpi.pl... > "FOR INSERT" > co to objekt.... w ostatniej linijce? jaki error ci wywala
To tylko na potrzeby zapytania na grupie dyskusyjnej. W rzeczywistości jest tam tekst np. "kat2--slave.REGL6" Błędów nie wywala ale też nie robi update'ów tabeli T2. Zobaczę jak po Twojej radzie będzie wyglądać sytuacja. Rafał
gervee - 15-03-2006 10:40
Użytkownik "gervee" <gervee_nospam@o2.pl> napisał w wiadomości news:dv6s8v$g7p$1@atlantis.news.tpi.pl... > Użytkownik " LQ" <lq@lq.lq> napisał w wiadomości > news:dv6rqp$9ns$1@nemesis.news.tpi.pl... > > "FOR INSERT" > > co to objekt.... w ostatniej linijce? jaki error ci wywala > > To tylko na potrzeby zapytania na grupie dyskusyjnej. W rzeczywistości jest > tam tekst np. "kat2--slave.REGL6" > Błędów nie wywala ale też nie robi update'ów tabeli T2. Zobaczę jak po > Twojej radzie będzie wyglądać sytuacja. > Rafał > Znalazłem rozwiązanie, które działa i wygląda tak:
CREATE TRIGGER trgLastValues ON mt_logger FOR INSERT AS declare @liczbaZmienionychWierszy int declare @_value decimal declare @_time datetime declare @_name varchar(255)
SELECT @liczbaZmienionychWierszy=@@rowcount if @liczbaZmienionychWierszy=1 BEGIN select @_value = mt_value from inserted select @_time = mt_time from inserted select @_name = mt_name from inserted
UPDATE mt_last SET mt_value = @_value, mt_time = @_time WHERE mt_name LIKE @_name END
Ponieważ inserty są pojedyncze więc bez problemu powinno działać. Rafał
LQ - 15-03-2006 10:40
> Ponieważ inserty są pojedyncze więc bez problemu powinno działać.
OK ale czym to sie rozni od poprzedniego ? ;) bo ja w sumie widze tylko to FOR co podawałem
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?=
MSSQL Express czy Oracle Express
MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?=
[MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?=
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
zanotowane.pldoc.pisz.plpdf.pisz.plmorebeer.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|