Nuså!
CREATE TRIGGER TR_DollsPics ON tblMAIN FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DELETE FROM tblSUB WHERE tblSUB.SubCat in(SELECT MainCat FROM deleted)
END
Databaser & SQLur Databashanterare & SQL
6 svar · 329 visningar · startad av SteveP
Denna triggern använder jag i en Oracle db.
create trigger kundtrigger
on kunder before delete
referencing old as oldRow
as
begin
delete from telnr where kundid = : oldRow.id;
end kundtrigger;
Kan jag köra before delete i mssql? Får inte riktigt till den.
När jag deleterar nåt från tblMAIN så vill jag att alla poster i tblSUB som är relaterade till tblMAIN ska tas bort.
Relationen görs genom ett värde som finns i tblMAIN.MainCat och detta värde ligger i tblSUB.SubCat
Nuså!
CREATE TRIGGER TR_DollsPics ON tblMAIN FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DELETE FROM tblSUB WHERE tblSUB.SubCat in(SELECT MainCat FROM deleted)
END
Kan nån förklara vad SET NOCOUNT ON gör?
SET NOCOUNT ON stänger av rowcount för varje fråga som exekveras. Det kanske skulle vara mer logiskt om man skrev SET COUNT OFF eller så. :)
Nu vet jag inte vad det skulle spela för roll i en trigger, och i det här fallet känns den onödig, eftersom du bara exekverar ett SQL-statement i din trigger.
Men vad vet jag! :)
Ok så man kan använda det till att se hur många Rows som blev affected av triggern? och isf hur får man ut denna rowcount om man har NOCOUNT OFF?
E det som i SP's?
typ SELECT @total_rows = @@ROWCOUNT
Set NOCOUNT OFF påverkar inte @@rowcount. Det innebär bara att SQL server inte skickar information om antalet poster som påverkats till klienten.
Jaha såpas. E det nån performance förbättring att ha NOCOUNT ON om man har flera statements som inte returnerar nån större data? Syftar i synnerhet på SP's