我有一个大型 T-SQL 脚本,可以打开和关闭一些事务。我已经读过使用 GO 语句提交批处理可以有效地清除其范围内的所有变量。
鉴于下面的脚本,在提交事务后是否会定义 @MyImportantVariable?
这是一个问题,如果是,我该如何克服它?
DECLARE @MyImportantVariable INT;
SET @MyImportantVariable = 42;
DECLARE @Counter INT;
SET @Counter = 0
DECLARE UpdateGarmentCursor CURSOR FAST_FORWARD
FOR
SELECT
MyColumn
FROM
MyWonderfulTable
BEGIN TRANSACTION
WHILE @@TRAN_STATUS = 0
BEGIN
-- Do interesting work in here
SET @Counter = @Counter +1
IF(@Counter>10)
BEGIN
COMMIT TRANSACTION
-- What happens here to @MyImportantVariable?
SET @Counter = 0
BEGIN TRANSACTION
END
END
-- Close the transaction one last time
COMMIT TRANSACTION