Есть 2 возможности. используйте GO
для разделения партий. (Фактическое разделение области запроса. Все предыдущие объявленные переменные недоступны в следующем пакете запроса.)
Или объявите переменную только один раз и используйте SET
В большинстве случаев вам понадобится вариант 2 , чтобы повторно использовать объявление. Но иногда, когда у вас есть операторы, требующие GO
(СОЗДАТЬ ВИД), вам нужно go с опцией 1.
Вариант 1
BEGIN TRY
BEGIN TRANSACTION
Print '1'
DECLARE @FieldName NVARCHAR(100) = 'Bank Name';
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Error'
END CATCH
GO -- Batch seperator
BEGIN TRY
BEGIN TRANSACTION
DECLARE @FieldName NVARCHAR(100) = 'Account Number';
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Error'
END CATCH
Вариант 2
DECLARE @FieldName NVARCHAR(100) -- Declare once
BEGIN TRY
BEGIN TRANSACTION
Print '1'
SET @FieldName = 'Bank Name'; -- Use Set to set the value
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Error'
END CATCH
BEGIN TRY
BEGIN TRANSACTION
SET @FieldName = 'Account Number'; -- Use Set to set the value
COMMIT TRANSACTION
END TRY
BEGIN CATCH
PRINT 'Error'
END CATCH