Ich versuche, ein Verfahren zu schreiben, die früheren Reihen von Stunden fügt, wenn Prozedur einen Fehler beim nächsten Mal fügt 2 Stunden vor dem usw. bekommt:SQL Server-Prozedur/Transaktion mit globalem Parameter?
Dieser Code überschreibt ERROR_COUNT
. Wie muss ich eine Variable @error_count
deklarieren, dass Wert für jeden Anruf gespeichert wurde?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[errorcount]
AS
BEGIN
DECLARE @Data DateTime
DECLARE @error_count int
SET @error_count = 0
-- if first run error_count = 0 --
SET @Data = DATEADD(HOUR, -1 * @error_count - 1, GETDATE())
BEGIN TRANSACTION
Select ... where Date > @Date
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
set @error_count= @error_count + 1;
END
ELSE begin
COMMIT TRANSACTION
set @error_count = 0
end
END
Alle globalen Variablen in t-sql sind vordefiniert. Sie können keine globale Variable deklarieren, aber Sie können einen Wert in einer Tabelle oder einer globalen temporären Tabelle speichern. –