문제

명확하게하기 위해 Sybase 12.5.3을 실행하고 있지만 SQL Server 2005의 경우에도 이것이 사실이라고 믿게됩니다. 기본적으로 저는 이와 비슷한 쿼리를 작성하려고합니다. 문제를 강조하기 위해 가능한 한 단순화했습니다.

DECLARE @a int,  @b int, @c int

SELECT
     @a = huzzah.a
    ,@b = huzzah.b
    ,@c = huzzah.c
FROM (
    SELECT
         1 a
        ,2 b
        ,3 c
) huzzah

이 쿼리는 다음과 같은 오류를 제공합니다. "오류 : 141 변수에 값을 할당하는 일부 명령문은 데이터-레트리 레알 작업과 결합되어서는 안됩니다."

지금까지 내가 얻은 유일한 작업은 파생 테이블 데이터를 임시 테이블에 삽입 한 다음 다시 선택하는 것입니다. 잘 작동하지만 이것이 효과가 없다는 사실은 저를 자극합니다. 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

오류는 12.5.3 ESD 4 & 7에 설명 된대로 나타나며 12.5.4 ESD 4 & 6에서 잘 실행됩니다.

패치 된 버그처럼 보이며 유일한 옵션은 해결 방법 또는 패치 인 것 같습니다.

무엇이 보이는지 발견했습니다 버그 377625

다른 팁

방금 12.5.3에 대해 코드를 실행했는데 괜찮습니다 ... 아무것도 반환하지는 않지만 실행됩니다. 오류 메시지가 전혀 보이지 않기 때문에 문제를 너무 단순화했을 수도 있습니다.

분명히 말하면, 다음은 당신이 기대하는 것을 실행하고 반환합니다.

DECLARE @a int,  @b int, @c int

SELECT
     @a = huzzah.a
    ,@b = huzzah.b
    ,@c = huzzah.c
FROM (
    SELECT
         1 a
        ,2 b
        ,3 c
) huzzah

select @a
select @b
select @c
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top