Вызвать некоторый SQL-код для сброса значений локальных переменных

Я использую Sql Server 2008. В моем файле sql я определил 5 локальных переменных (все они int) и установил их все в 0. Затем я выполняю некоторые операции (не в цикле). После каждой операции мне нужно сбросить значения локальных переменных на 0. Сейчас я вручную устанавливаю все переменные на 0 после каждой операции. Есть ли лучший способ сбросить их все в 0 каждый раз, возможно, вызывая какую-то функцию, а не вручную делать это?

DECLARE @int1 int
DECLARE @int2 int
DECLARE @int3 int
DECLARE @int4 int
DECLARE @int5 int

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0

-- Operation 1
SELECT * FROM Orders

-- Reset values (Number of times the reset code written: 1)

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0
-------------------- END OF OPERATION 1 and RESETTING VARIABLES ---------------

-- Operation 2

SELECT * FROM Lines

-- Reset values (Number of times the reset code written: 2)

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0
-------------------- END OF OPERATION 2 and RESETTING VARIABLES ---------------

-- Operation 3

SELECT * FROM Customers

-- Reset values (Number of times the reset code written: 3)

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0
-------------------- END OF OPERATION 3 and RESETTING VARIABLES ---------------

-- Operation 4

SELECT * FROM Address

-- Reset values (Number of times the reset code written: 4)

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0
-------------------- END OF OPERATION 4 and RESETTING VARIABLES ---------------

-- Operation 5

SELECT * FROM Accounts

-- Reset values (Number of times the reset code written: 5)

SET @int1 = 0
SET @int2 = 0
SET @int3 = 0
SET @int4 = 0
SET @int4 = 0
-------------------- END OF OPERATION 5 and RESETTING VARIABLES ---------------

Как ясно видно, сброс локальных переменных был записан 5 раз (обозначается как "Количество написанных кодов сброса: #"). Есть ли лучший способ вызвать функцию, которая выполняет сброс, так что мне нужно только вызвать функцию, например ResetVaraibles(), которая будет иметь код сброса локальных переменных. Теперь это более понятно?

2 ответа

Способ 1: отключить и подключиться к SQL Server.

Способ 2: Ctrl-A Ctrl-C Ctrl-N Ctrl-V Скопировать код в новое окно.

Вы могли бы сохранить хранимую процедуру с 5 выходными параметрами.

create procedure ResetTo0
  @int1 int out,
  @int2 int out,
  @int3 int out,
  @int4 int out,
  @int5 int out
as

set @int1 = 0
set @int2 = 0
set @int3 = 0
set @int4 = 0
set @int5 = 0

И это будет называться так.

exec ResetTo0 @int1 out, @int2 out, @int3 out, @int4 out, @int5 out

Но я не думаю, что вы получите много (если вообще что-то) по сравнению с использованием select для сброса значений.

select @int1 = 0, @int2 = 0, @int3 = 0, @int4 = 0, @int5 = 0
Другие вопросы по тегам