0
심각한 문제입니다 : 그것은 SQL 쿼리 분석기에서 잘못입니까?VS-2005에서 모호한 Sql 오류
는 내가 SQL 쿼리 분석기에서 다음 쿼리를 테스트 한 얼굴 이상한 상황이 : 그것은 SQL 쿼리 분석기에서 매우 잘 오류 작동하지
insert into PLCommonTotal(CmnTotal)
select
case
when p.NetpurTot > s.NetsalTot then
(
select NetpurTot from PLPurchaseTotal
)
else
(
Select NetsalTot from PLSaleTotal
)
end
from PLPurchaseTotal p
join PLSaleTotal s
on p.companyID=s.companyID
select * from PLCommonTotal
.
지금 VS 2005에서 동일한 쿼리를 보면 :
string tot5 = " insert into PLCommonTotal(CmnTotal)" +
" select" +
" case" +
" when p.NetpurTot > s.NetsalTot then" +
" (" +
" select NetpurTot from PLPurchaseTotal" +
")" +
" else" +
" (" +
" Select NetsalTot from PLSaleTotal" +
")" +
" end" +
" from PLPurchaseTotal p" +
" join PLSaleTotal s" +
" on p.companyID=s.companyID";
SqlCommand comcmd = new SqlCommand(tot5, con);
comcmd.Transaction = trans;
comcmd.ExecuteNonQuery();
이 SQL 오류를 던져 : "하위 쿼리 반환 더 하나 개의 값보다. 하위 쿼리가 =! = < < => = =이거나 하위 쿼리에서식이 사용 된 경우에는 하위 쿼리가 허용되지 않습니다. 이 성명서는 기명되었다. "
SQL 쿼리 분석기에서 오류없이 실행되는 이유는 허용되지 않는 질문입니다.
SQL 팀에 결함이 있습니까?
예 나중에 사용했지만 내 질문이 아닙니다. 귀하의 진술에 따라 SQL Server 2005를 VS-2005에서 문제가 될 수있는 것보다 SQL Server 2005를 사용하는 경우 – mahesh
... transact SQL에 대해 SQL Server 2000 및 SQL 2005와 다른 메커니즘이 있다고 말했습니까? – mahesh
@mahesh - 아니요 DB 버전간에 차이점이 없습니다. 그것은 테이블에 포함 된 데이터의 문제이므로 다른 내용의 다른 데이터베이스를 사용한다고 생각합니다. 테이블에 행 수가 두 개 미만인 경우 원래 쿼리에 오류가 표시되지 않습니다. 하위 쿼리에서 테이블 이름을 지정할 때 기본 쿼리의 from 절에 지정한 테이블이 아닌 전체 테이블 *을 다시 사용합니다 *. –