Ich muss eine temporäre Tabelle mit GROUP BY
Klausel innerhalb eines Triggers erstellen und verwenden, aber ich habe Schwierigkeiten damit.Erstellen einer temporären Tabelle in einem TRIGGER mit GROUP BY
Mein Versuch:
Hier Ich versuche, zwei temporäre Tabellen zu verwenden, die nach dem Abzug fallen gelassen werden, um ein Ende zu erreichen.
Zuerst erstelle ich einen #Temptable
und den Auslöser.
CREATE TABLE #TempTable (admID smallint, diagID smallint);
CREATE TRIGGER tr_newTest
ON Adm_Diag
FOR INSERT
AS
BEGIN
...
END
Da die Tabelle enthält nur eingefügten Zeilen für einen aktuellen INSERT
und UPDATE
Aussagen Ich bin vorbei an mehreren INSERT
und UPDATE
Aussagen zu #TempTable
.
DECLARE @admID smallint
SELECT @admID = Adm_ID
FROM inserted
DECLARE @diagID smallint
SELECT @diagID=Diag_ID
FROM inserted
INSERT INTO #TempTable VALUES (@admID, @diagID)
Jetzt mit diesen Daten möchte ich eine temporäre Tabelle erstellen, dass Gruppen die Reihen von #TempTable
:
SELECT *
INTO #TempGroupTable
FROM
(
SELECT admID, COUNT(*) as Diag
FROM #TempTable
GROUP BY admID
) t1
WHERE Diag > 2
Das ganzen Skript
CREATE TABLE #TempTable (admID smallint, diagID smallint);
CREATE TRIGGER tr_newTest
ON Adm_Diag
FOR INSERT
AS
BEGIN
DECLARE @admID smallint
SELECT @admID = Adm_ID
FROM inserted
DECLARE @diagID smallint
SELECT @diagID=Diag_ID
FROM inserted
INSERT INTO #TempTable VALUES (@admID, @diagID)
-- Below I'm tring to create #TempGroupTable
SELECT *
INTO #TempGroupTable
FROM
(
SELECT admID, COUNT(*) as Diag
FROM #TempTable
GROUP BY admID
) t1
WHERE Diag > 2
END
Nach der Ausführung des Triggers ich einen Fehler :
Msg 208, Level 16, State 0, Line 41 Invalid object name '#TempGroupTable'.
Wie kann ich #TempGroupTable
erstellen?
Warum verwenden Sie nicht physische Tabelle anstelle von Temp-Tabelle. Temp-Tabelle mit '#' wird außerhalb der Sitzung nicht funktionieren. – Esty
@TanjimRahman Ich muss nicht mit temporären Tabellen außerhalb der Sitzung arbeiten. Wie gesagt, nur für die Dauer des Triggers. – Jazz
Verwenden Sie ein doppeltes Pfundzeichen, '## TempGroupTable' – Rene