Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Trigger meldet 'Cursor bereits vorhanden' ?

125 views
Skip to first unread message

jone...@googlemail.com

unread,
Jan 13, 2011, 5:38:15 AM1/13/11
to
Hi Group,
ich bekomme bei meinem Trigger immer die Meldung 'Der Cursor mit dem
Namen iwrCursor ist bereits vorhanden'. Kann mir jemand sagen warum?

Hier der Trigger:

USE [myDB]
GO
/****** Object: Trigger [dbo].[IW_trCRM_FormatTelnr] Script Date:
01/13/2011 08:05:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER TRIGGER [dbo].[IW_trCRM_FormatTelnr]
ON [dbo].[CRM_ADRESSEN]
AFTER INSERT, UPDATE
AS
DECLARE @aID INT
DECLARE @Telnr nvarchar(20)
DECLARE @intTelnr nvarchar(20)

DECLARE iwrCursor CURSOR FOR
SELECT [CRM_ADRESSEN_ID],[TELEFON1]
FROM INSERTED

OPEN iwrCursor
FETCH NEXT FROM iwrCursor
INTO @aId, @Telnr

WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE [CRM_ADRESSEN]
SET [Bemerkung] = 'xxx'
WHERE [CRM_ADRESSEN_ID] = @aID

FETCH NEXT FROM iwrCursor
INTO @aId, @Telnr
END

CLOSE iwrCursor
DEALLOCATE iwrCursor

Reiner Wolff

unread,
Jan 14, 2011, 3:23:07 AM1/14/11
to
*jone...@googlemail.com* schrieb:

> ich bekomme bei meinem Trigger immer die Meldung 'Der Cursor mit dem
> Namen iwrCursor ist bereits vorhanden'. Kann mir jemand sagen warum?


Ich weiß ja nichtmal, auf welchem Datenbanksystem Du überhaupt arbeitest.

Cursor stehen bei mir aber in dem Ruf tendenziell langsam zu sein, was mit
der Anforderung an Trigger nicht gut zusammenpasst.
Sind Cursor in Triggern bei Deinem Datenbanksystem überhaupt erlaubt?

Warum setzt Du überhaupt einen Cursor ein?

Tut es nicht auch eine einfache Update-Anweisung:

Update [CRM_Adressen]
Set [Bemerkung] = 'xxx'
From [CRM-Adressen]
Inner Join inserted
On [CRM_Adressen].[CRM_Adressen_ID] = inserted.[CRM_Adressen_ID]

Wenn du sowieso bei der Bemerkung immer nur ein 'xxx' einfügen willst,
sollte das auch ohne Cursor gehen.

Gruß aus Kiel
Reiner
--
Ein Computer wird das tun,
was Du programmiert hast - nicht das, was Du willst.
(Murphy)

0 new messages