如何解决检查SELECT是否在存储过程中返回任何行
IF NOT EXISTS (SELECT ...)
BEGIN
INSERT ...
END
如果您希望查询可能经常返回行(尤其是很多行),也可以这样做,这可能会提供一个更好的短路机会:
IF EXISTS (SELECT ...)
BEGIN
PRINT 'Do nothing.';
END
ELSE
BEGIN
INSERT ...
END
…因为IF EXISTS
它将在到达匹配的第一行后立即返回。
我不建议@@ROWCOUNT
仅使用它,因为您每次都必须实现(忽略)整个结果集。
解决方法
我正在写一个基本SELECT
查询,类似:
SELECT id,pname,pnumber
FROM tableName
WHERE pnumber IS NOT NULL
我想然后INSERT
通过使用SELECT
类似的结果执行:
IF {**the above SELECT query returned 0 rows**}
BEGIN
INSERT INTO tableName (pname,pnumber) VALUES ('bob','38499483')
END
我的问题是,如何检查**the above SELECT query returned 0 rows**
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。