2012-05-03 3 views
-1

SQL Server 2008에서는 SQL Server 2008에서 5 개의 로컬 변수 (모두 int)를 정의하고 모두 0으로 설정했습니다. (루프가 아님). 각 작업 후에 로컬 변수의 값을 0으로 재설정해야합니다. 지금 당장 수동으로 모든 변수를 0으로 설정하고 있습니다. 매회마다 0으로 재설정하는 더 좋은 방법이 있을까요, 아마도 maunally하기보다는 일부 함수를 호출하는 것일까 요? ("#를 리셋 코드가 기입 된 횟수"로 식별 됨)가 분명히 알 수있는 바와 같이일부 sql 코드를 호출하여 로컬 변수의 값을 다시 설정합니다.

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

실제 코드를 잘못 작성한 것이 아닌가요? –

+0

당신이 원하는 사실은 당신이 진짜 문제에 잘못 접근하고 있음을 암시합니다. –

+0

실제 문제는 N 번 코드를 재설정하는 것을 쓰고 싶지 않다는 것입니다. 나는 그 재사용 가능한 코드를 N 번 호출함으로써 그렇게 할 수있는 재사용 가능한 코드를 찾고있다. 일반적으로 이것은 임의의 언어에서 함수를 호출하여 쉽게 얻을 수 있습니다. – user1274655

답변

0

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 
0

방법 1 : SQL Server에 연결을 끊고 연결하십시오.

방법 2 : Ctrl-A Ctrl-C Ctrl-N Ctrl-V 코드를 새 창에 복사하십시오.

관련 문제