Hallo zusammen,
Ich bin noch Neuling im Triggern daher ist die Frage vermutlich nicht so komplex für die Könner der Materie.
Ich habe einen Trigger geschrieben der ein paar Werte abfüllen soll wenn bestimmte Bedingungen erfüllt sind.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Autor>
-- Create date: <Datum>
-- Description: <siehe Name>
-- =============================================
CREATE TRIGGER Porto_in_dbo.AUF_Dokumente_einfügen_wenn_Position_ Portopflichtig
ON dbo.AUF_DokumentPos After INSERT
AS
BEGIN
SET NOCOUNT ON
Declare @Kurs money
Declare @Artikelnr varchar(50)
Declare @Portopflicht bit
Declare @DokNr int
Declare @Betrag float
set @DokNr = (Select DokumentNrAUF from inserted)
set @Artikelnr = (Select isnull(ArtikelNrLAG, 'IstNull') from inserted)
set @Portopflicht = (Select ArtikelNrLAG from dbo.LAG_Artikel where ArtikelNrLAG = @Artikelnr)
set @Kurs = (Select Kurs from dbo.AUF_Dokumente where DokumentNrAUF = @DokNr)
set @Betrag = 99999
if @Artikelnr != 'istNull'
Begin
if @Portopflicht = 1
Begin
update dbo.AUF_Dokumente
set PortoErtrag = '3600' , PortoSW = @Betrag, PortoFW = @Betrag / @Kurs,
PortoMWStFW = (@Betrag * 0.076) / @Kurs, PortoMWStSW = (@Betrag * 0.076), PortoStCode = 10
where DokumentNrAUF = @DokNr
END;
END;
END
GO
Wenn ich versuche den Trigger zu erstellen kommt folgende Fehlermeldung:
Meldung 2103, Ebene 15, Status 1, Prozedur AUF_Dokumente_einfügen_wenn_Position_Portopflichti g, Zeile 28
Erstellen des 'Porto_in_dbo.AUF_Dokumente_einfügen_wenn_Position _Portopflichtig'-Triggers ist nicht möglich, da das Schema nicht mit dem Schema der Zieltabelle oder der Sicht identisch ist.
Eigentlich bin ich der Meinung das Schema, zumindest die Datentypen, eingehalten zu haben. Wenn ich das mit einem einfachen SQL Statement nachprüfe funktioniert der update:
update dbo.AUF_Dokumente
set PortoErtrag = '3600' , PortoSW = 99999, PortoFW = 99999 / 1.55,
PortoMWStFW = 7599.924 / 1.55, PortoMWStSW = 7599.924, PortoStCode = 10
where DokumentNrAUF = 100010
Hat jemand eine Idee wo's bei mir klemmt?
Gruss
Opusretis
Ich bin noch Neuling im Triggern daher ist die Frage vermutlich nicht so komplex für die Könner der Materie.
Ich habe einen Trigger geschrieben der ein paar Werte abfüllen soll wenn bestimmte Bedingungen erfüllt sind.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Autor>
-- Create date: <Datum>
-- Description: <siehe Name>
-- =============================================
CREATE TRIGGER Porto_in_dbo.AUF_Dokumente_einfügen_wenn_Position_ Portopflichtig
ON dbo.AUF_DokumentPos After INSERT
AS
BEGIN
SET NOCOUNT ON
Declare @Kurs money
Declare @Artikelnr varchar(50)
Declare @Portopflicht bit
Declare @DokNr int
Declare @Betrag float
set @DokNr = (Select DokumentNrAUF from inserted)
set @Artikelnr = (Select isnull(ArtikelNrLAG, 'IstNull') from inserted)
set @Portopflicht = (Select ArtikelNrLAG from dbo.LAG_Artikel where ArtikelNrLAG = @Artikelnr)
set @Kurs = (Select Kurs from dbo.AUF_Dokumente where DokumentNrAUF = @DokNr)
set @Betrag = 99999
if @Artikelnr != 'istNull'
Begin
if @Portopflicht = 1
Begin
update dbo.AUF_Dokumente
set PortoErtrag = '3600' , PortoSW = @Betrag, PortoFW = @Betrag / @Kurs,
PortoMWStFW = (@Betrag * 0.076) / @Kurs, PortoMWStSW = (@Betrag * 0.076), PortoStCode = 10
where DokumentNrAUF = @DokNr
END;
END;
END
GO
Wenn ich versuche den Trigger zu erstellen kommt folgende Fehlermeldung:
Meldung 2103, Ebene 15, Status 1, Prozedur AUF_Dokumente_einfügen_wenn_Position_Portopflichti g, Zeile 28
Erstellen des 'Porto_in_dbo.AUF_Dokumente_einfügen_wenn_Position _Portopflichtig'-Triggers ist nicht möglich, da das Schema nicht mit dem Schema der Zieltabelle oder der Sicht identisch ist.
Eigentlich bin ich der Meinung das Schema, zumindest die Datentypen, eingehalten zu haben. Wenn ich das mit einem einfachen SQL Statement nachprüfe funktioniert der update:
update dbo.AUF_Dokumente
set PortoErtrag = '3600' , PortoSW = 99999, PortoFW = 99999 / 1.55,
PortoMWStFW = 7599.924 / 1.55, PortoMWStSW = 7599.924, PortoStCode = 10
where DokumentNrAUF = 100010
Hat jemand eine Idee wo's bei mir klemmt?
Gruss
Opusretis
Comment