sql - 存在失败进入存储过程
问题描述
此代码工作:
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 指定时,您只能在选择列表中指定表达式。
解决方案
使用单个SELECT
语句。内部SELECT
语句是不必要的。我会将您的查询重写为:
SELECT TOP (1) @DescripcionArticuloVEL = DescripcionArticulo
FROM TabVentasEnLineaDetalle
WHERE IDArticulo = @IDArticulo;
推荐阅读
- javascript - 在 Plotly Js 上将绝对值更改为相对值
- jquery - ScrollTop 在砌体图像缩略图中找不到几个不同的数字元素 ID 之一以将页面滚动到图像
- firebase - 未为类型“对象”定义运算符“[]”
- jquery - 使用simpleModal时如何响应iframe和模态
- python - 如何为所有 Flask-SQLAlchemy 模型继承自定义构造函数
- python - 属性和回溯调用错误运行行为
- reason - 如何在 ReScript 中为任意记录类型实现哈希函数?
- python - 如何正确获取多进程 pool.map 的输出并使用它?
- python - 如何从 Python 中的 Web 会话数据中聚类最常见的路由?
- node.js - 如何删除 TypeORM 树中类别的父关系?