1
SQL 쿼리에 뭔가 빠졌습니다. 누군가 올바른 방법을 알려주시겠습니까?여러 매개 변수가있는 매개 변수가있는 SQL
declare @numItems int;
declare @value1 int;
declare @value2 int;
declare @currentValue int;
declare @counter int;
declare @qry nvarchar(max)
set @value1 = 5;
set @value2 = 10;
set @numItems = 2
set @counter=0
WHILE (@counter < @numItems)
BEGIN
set @qry = 'set @currentValue = @value' + cast(@counter+1 as nvarchar(max)) + ';'
exec sp_executesql @qry, N'@currentValue int OUTPUT', @currentValue OUTPUT
print @currentValue
set @counter = @counter + 1;
END
내가 원하는 것은 @currentValue 매개 변수는 @의 값 1과 @의 값 2의 값을 얻고,이를 출력한다는 것입니다 : 이것은 내 SQL입니다. exec 문에서 매개 변수를 올바르게 선언하는 방법을 모르겠습니다. SQL Server 2005를 사용하고 있습니다. 도움을 주셔서 감사합니다.
+1 나를 때려 눕히십시오. 참고로 @ lekso. Exec'd 쿼리는 자신의 범위입니다. 그것은 단지 exec'd중인 SQL 내부에 선언 된 항목을 볼 수 있습니다. –
Martin 고마워. 내 질문에 대한 답이다. 예를 들어 많은 수의 '@@ value ..'매개 변수가있는 경우와 같이 exec 쿼리에서 @@ value1 및 @@ value2 값을 하드 코딩하지 않는 방법이 있습니까? – lekso
@Tony Hopkins, 감사합니다. 나는 이것을 구현하는 방법을 정말로 이해하지 못했다고 읽었습니다. 지금 막 흥미로운 기사/게시물을 찾았습니다. http://www.sommarskog.se/dynamic_sql.html – lekso