0
我試圖寫一個插入幾小時前的行的程序,如果程序在下次插入2小時之前發生錯誤時出現錯誤:帶有全局參數的SQL Server過程/事務?
此代碼覆蓋ERROR_COUNT
。我該如何聲明變量@error_count
該值是針對每個呼叫存儲的?
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
t-sql中的所有全局變量都是預定義的。您不能聲明全局變量,但可以將值保存到表或全局臨時表中。 –