ďťż
 
msSQL triger ďťż
 
msSQL triger
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

msSQL triger



norbert - 17-06-2007 00:17
msSQL triger
  Witam

Mam do?? ciekawy problem a mianowicie:

Zalozylem na tabele kontrahent triggera i ten trigger ma by? wywo?ywany
w momentcie dodania nowego kontrachenta. Ale.........
tylko tego kontrhenta co ma wyró?nik 1
i teraz w takim przypadku ma to zapisac do tabeli historia.
Fajnie jest bo to nawet dzi?a ale tylko wtedy gdy faktycznie kontrahent
ma wyró?nik 1.
W przypadku kontahenta który ma wyró?nik 0 to nawet faktycznie nie
zadzia?? trigger tak jak ma to by? lecz gdy ponownie dodam kontrahenta z
wyró?nikiem 1 to...
do tabeli historia wpisuje mi kontrahenta z wyró?nikiem 1 jak i 0 .
czemu tak si? dzieje? jak temu zaradzi? ?eby w tabeli historia byli
zawsze tylko kontrachenci z wyró?nikiem 1





sg - 17-06-2007 00:17

  norbert pisze:
> Witam
>
> Mam do?? ciekawy problem a mianowicie:
>
> Zalozylem na tabele kontrahent triggera i ten trigger ma by? wywo?ywany
> w momentcie dodania nowego kontrachenta. Ale.........
> tylko tego kontrhenta co ma wyró?nik 1
> i teraz w takim przypadku ma to zapisac do tabeli historia.
> Fajnie jest bo to nawet dzi?a ale tylko wtedy gdy faktycznie kontrahent
> ma wyró?nik 1.
> W przypadku kontahenta który ma wyró?nik 0 to nawet faktycznie nie
> zadzia?? trigger tak jak ma to by? lecz gdy ponownie dodam kontrahenta z
> wyró?nikiem 1 to...
> do tabeli historia wpisuje mi kontrahenta z wyró?nikiem 1 jak i 0 .
> czemu tak si? dzieje? jak temu zaradzi? ?eby w tabeli historia byli
> zawsze tylko kontrachenci z wyró?nikiem 1

wystarczy napisa? odpowiedni trigger... a tak to nawet nie wiadomo jak
Ci pomóc, mo?e kawa?ek tabeli, triggera czy czego? podobnego by? pokaza??




norbert - 17-06-2007 00:17

  sg napisa?(a):
> norbert pisze:
>> Witam
>>
>> Mam do?? ciekawy problem a mianowicie:
>>
>> Zalozylem na tabele kontrahent triggera i ten trigger ma by?
>> wywo?ywany w momentcie dodania nowego kontrachenta. Ale.........
>> tylko tego kontrhenta co ma wyró?nik 1
>> i teraz w takim przypadku ma to zapisac do tabeli historia.
>> Fajnie jest bo to nawet dzi?a ale tylko wtedy gdy faktycznie
>> kontrahent ma wyró?nik 1.
>> W przypadku kontahenta który ma wyró?nik 0 to nawet faktycznie nie
>> zadzia?? trigger tak jak ma to by? lecz gdy ponownie dodam kontrahenta
>> z wyró?nikiem 1 to...
>> do tabeli historia wpisuje mi kontrahenta z wyró?nikiem 1 jak i 0 .
>> czemu tak si? dzieje? jak temu zaradzi? ?eby w tabeli historia byli
>> zawsze tylko kontrachenci z wyró?nikiem 1
>
> wystarczy napisa? odpowiedni trigger... a tak to nawet nie wiadomo jak
> Ci pomóc, mo?e kawa?ek tabeli, triggera czy czego? podobnego by? pokaza??

IF EXISTS
(
SELECT name FROM sysobjects
WHERE name = 'N_Trigger' AND type = 'TR'
)
DROP TRIGGER N_Trigger
GO

create trigger N_Trigger on kontrahent
after insert

as
declare @wyroznik1 int
declare @stan_przed int
declare @stan_po int
select @wyroznik1 =(select wyroznik from inserted)
if (@rejestracja =1)
begin

SET @stan_przed = (select kasa from wplata where idkontrahenta =(select
id_kontrahenta from inserted where wyroznik =1))

update wplata
set kasa = dbo.N_ZamOdOdb(id_kontrahenta)
where id_kontahenta =(select id_kontrahenta from inserted where
wyroznik =1 )

SET @stan_po = (select kasa from wplata where idkontrahenta =(select
id_kontrahenta from inserted where wyroznik =1))

INSERT INTO historia (data,stan_przed,stan_po) values
(getdate(),@stan_przed,@stan_po)

end
go

to wyglada dokladnie tak ze jesli wybiore kontahenta z wyroznikiem 1 to
dopisze do tabeli historia wplaty a jesli dodam kontahenta z wyroznikiem
0 to nie doda ale jesli powtornie dodam kontrahenta z wyroznikiem 1 to
stan_po jest suma dwoch ostatnich operacji.
I to nie jest spowodowane tym ze jest wykonywany dwa razy update bo
sprawdzalem




norbert - 17-06-2007 00:17

  norbert napisa?(a):
> sg napisa?(a):
>> norbert pisze:
>>> Witam
>>>
>>> Mam do?? ciekawy problem a mianowicie:
>>>
>>> Zalozylem na tabele kontrahent triggera i ten trigger ma by?
>>> wywo?ywany w momentcie dodania nowego kontrachenta. Ale.........
>>> tylko tego kontrhenta co ma wyró?nik 1
>>> i teraz w takim przypadku ma to zapisac do tabeli historia.
>>> Fajnie jest bo to nawet dzi?a ale tylko wtedy gdy faktycznie
>>> kontrahent ma wyró?nik 1.
>>> W przypadku kontahenta który ma wyró?nik 0 to nawet faktycznie nie
>>> zadzia?? trigger tak jak ma to by? lecz gdy ponownie dodam
>>> kontrahenta z wyró?nikiem 1 to...
>>> do tabeli historia wpisuje mi kontrahenta z wyró?nikiem 1 jak i 0 .
>>> czemu tak si? dzieje? jak temu zaradzi? ?eby w tabeli historia byli
>>> zawsze tylko kontrachenci z wyró?nikiem 1
>>
>> wystarczy napisa? odpowiedni trigger... a tak to nawet nie wiadomo jak
>> Ci pomóc, mo?e kawa?ek tabeli, triggera czy czego? podobnego by? pokaza??
>
> IF EXISTS
> (
> SELECT name FROM sysobjects
> WHERE name = 'N_Trigger' AND type = 'TR'
> )
> DROP TRIGGER N_Trigger
> GO
>
> create trigger N_Trigger on kontrahent
> after insert
>
> as
> declare @wyroznik1 int
> declare @stan_przed int
> declare @stan_po int
> select @wyroznik1 =(select wyroznik from inserted)
> if (@rejestracja =1)
tu jest (@wyroznik1 =1)

> begin
>
> SET @stan_przed = (select kasa from wplata where idkontrahenta =(select
> id_kontrahenta from inserted where wyroznik =1))
>
>
> update wplata
> set kasa = dbo.N_ZamOdOdb(id_kontrahenta)
> where id_kontahenta =(select id_kontrahenta from inserted
> where wyroznik =1 )
>
> SET @stan_po = (select kasa from wplata where idkontrahenta =(select
> id_kontrahenta from inserted where wyroznik =1))
>
> INSERT INTO historia (data,stan_przed,stan_po) values
> (getdate(),@stan_przed,@stan_po)
>
> end
> go
>
> to wyglada dokladnie tak ze jesli

wybiore
dodam

kontahenta z wyroznikiem 1 to
> dopisze do tabeli historia wplaty a jesli dodam kontahenta z wyroznikiem
> 0 to nie doda ale jesli powtornie dodam kontrahenta z wyroznikiem 1 to
> stan_po jest suma dwoch ostatnich operacji.
> I to nie jest spowodowane tym ze jest wykonywany dwa razy update bo
> sprawdzalem
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com