存在失败进入存储过程

时间:2019-02-13 17:23:17

标签: sql sql-server tsql exists

此代码有效:

declare @IDArticulo int = 12
declare @DescripcionArticuloVEL varchar(150) = (select top 1 DescripcionArticulo 
from TabVentasEnLineaDetalle where IDArticulo=@IDArticulo and exists (select DescripcionArticulo 
from TabVentasEnLineaDetalle where IDArticulo=@IDArticulo))
print @DescripcionArticuloVEL

但是,到存储过程中会返回此错误:

  

第116行,州1,程序SPMaestroArticulos,第43行,消息
      仅当未使用EXISTS指定子查询时,才可以在选择列表中指定表达式。

1 个答案:

答案 0 :(得分:2)

使用单个SELECT语句。内部的SELECT语句是不必要的。我会将您的查询重新编写为:

SELECT TOP (1) @DescripcionArticuloVEL = DescripcionArticulo 
FROM TabVentasEnLineaDetalle 
WHERE IDArticulo = @IDArticulo;