![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 | |
| Neuer Benutzer Registriert seit: 17.03.2009
Beiträge: 5
|
Hallo Zusammen, ich bastel gerade an Triggern, auch an Triggern, deren Ergebnis per Email versendet wird. Dies funktioniert auch ganz gut. Jetzt stehe ich vor dem Problem, dass der Trigger den ich gerade aufbaue mehrere Datensätze bringen wird (nicht nur einen - hier funktioniert eine entsprechende Lösung gut). Beachtet bitte: Der Trigger soll funktionieren - ob er wirklich Sinn macht oder eine Herangehensweise über einen Report/Prozedur sinnvoller wäre ist egal. Mir geht es nur um das Verständnis! Also, was ich mache ist eine Abfrage über die Datenbank, die mithilfe eines Triggers den Kundenstamm mit dem Kreditlimit der Kunden abfragt. Beispielszenario: Ein neuer Kunde wird angelegt und ein Kreditlimit im KdStamm angelegt. Ist diese Kreditlimit über einem bestimmten Wert sollen alle Kundendaten ( wie Kd-Nummer, Name, etc.) per Mail an den Chef geschickt werden. Bisher steht folgendes: Code: ALTER TRIGGER Kreditlimitabfrage
ON dbo.YKUN0015
FOR INSERT,UPDATE
AS
SET NOCOUNT ON
declare @query nvarchar(max)
SET @query = (SELECT NAME1 FROM inserted
INNER JOIN Kreditabfrage ON dbo.inserted.NUMMER = dbo.YKUN0015.NUMMER
WHERE CONVERT(int,KRED_LIMIT) >= 200000)
EXEC msdb..sp_send_dbmail
@recipients = 'status@mydomain.com',
@subject = 'Kunde(n) mit Kreditlimit über Max in der Datenbank',
@body = @query;
Ich bekomme zwar eine positive Meldung (vom SQL Server Management Studio 2005), dass der Syntax stimmt. In dem ERP-System mit der Datenbank aber folgende Fehlermeldung: Zitat:
Kann mir jemand helfen? Geändert von pyromelana (17.03.2009 um 10:12 Uhr) | |
| | |
| | Nach oben #2 |
| Neuer Benutzer Registriert seit: 17.03.2009
Beiträge: 5
|
mmh, ok, ich hab den Fehler. Ohne Murren macht die Datenbank den Job, wenn der code so aussieht: Code: ALTER TRIGGER Kreditlimitabfrage
ON dbo.YKUN0015
FOR INSERT,UPDATE
AS
SET NOCOUNT ON
declare @query nvarchar(max)
SET @query = (SELECT i.NAME1 FROM inserted as i
INNER JOIN YKUN0015 as k ON i.NUMMER = k.NUMMER
WHERE CONVERT(int,k.KRED_LIMIT) >= 200000)
EXEC msdb..sp_send_dbmail
@recipients = 'status@mydomain.com',
@subject = 'Kunde(n) mit Kreditlimit über Max in der Datenbank',
@body = @query;
Code: SELECT i.Name1, i.Straße, i.Ort .... Code: Meldung 116, Ebene 16, Status 1, Prozedur Kreditlimitabfrage, Zeile 14 Nur ein einziger Ausdruck kann in der Auswahlliste angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeleitet wird. Geändert von pyromelana (17.03.2009 um 13:01 Uhr) |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |