Это серьезные вопросы: это ошибка в Sql Query Analyzer?.
Я столкнулся со странной ситуацией, когда я протестировал следующий запрос на Sql Query Analyzer:
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
Этоработает очень хорошо, без ошибок из Sql Query Analyzer.
Теперь посмотрите на тот же запрос в 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 throw: «подзапрос вернет больше, чемодно значение.Это недопустимо, если подзапрос следует =! = <<=>> = Или когда подзапрос использовал выражение.Оператор завершен ».
Я хочу задать вопрос, если он не разрешен, чем то, почему он выполняется из анализатора запросов SQL без какой-либо ошибки?.
Есть ли ошибкакоманды SQL?.