webForumDet fria alternativet

Fel i trigger

1 svar · 159 visningar · startad av yohpops

yohpopsMedlem sedan feb. 20011 102 inlägg
#1

Hej.
MSSQL Server 2000
Product version. 8.00.818 (SP3)

Kan någon förklara vad som är fel i denna triggern.

CREATE TRIGGER [tr_mfilesstat] ON [dbo].[mfiles] 
AFTER INSERT
AS
declare @cnt float
select @cnt = count(filename) from mfiles
IF @cnt > 0 and @cnt is not null
BEGIN
	begin tran
	insert mfilesstat select @cnt,((select max(added) from mfiles)-(select min(added) from mfiles)),(@cnt/datediff(mi,0,((select max(added) from mfiles)-(select min(added) from mfiles)))) from mfiles
	if @@error=0
	BEGIN
		commit tran
	end
	else
	begin
		rollback tran
	end
END

Det går att spara den, men när jag ska lägga in något i mfiles tabellen så får jag felet "Divide by zero error encountered".
Det borde inte hände eftersom jag kollar att @cnt är större än noll.
Och jag dividerar inte någon annanstans.

Tabellerna ser ut såhär.

CREATE TABLE [dbo].[mfiles] (
	[filename] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[added] [datetime] NULL 
) ON [PRIMARY]

CREATE TABLE [dbo].[mfilesstat] (
	[statid] [int] IDENTITY (1, 1) NOT NULL ,
	[cnt] [float] NULL ,
	[timetaken] [datetime] NULL ,
	[enties] [float] NULL 
) ON [PRIMARY]

Nån som vet?

mvh
YP

yohpopsMedlem sedan feb. 20011 102 inlägg
#2

Glöm detta.

Jag hittade felet men jag fixar det på annat sätt.

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb