存在失败进入存储过程

问题描述 投票:3回答:1

这段代码工作:

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,第16级,状态1,程序SPMaestroArticulos,第43行 当未使用EXISTS指定子查询时,只能在选择列表中指定表达式。

sql sql-server tsql exists
1个回答
2
投票

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

SELECT TOP (1) @DescripcionArticuloVEL = DescripcionArticulo 
FROM TabVentasEnLineaDetalle 
WHERE IDArticulo = @IDArticulo; 
© www.soinside.com 2019 - 2024. All rights reserved.