mut*_*y91 20 sql sql-server stored-procedures
我正在编写一个基本SELECT查询,例如:
SELECT id, pname, pnumber
FROM tableName
WHERE pnumber IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
我想INSERT通过使用它的结果来执行SELECT:
IF {**the above SELECT query returned 0 rows**}
BEGIN
INSERT INTO tableName (pname,pnumber) VALUES ('bob', '38499483')
END
Run Code Online (Sandbox Code Playgroud)
我的问题是,我该如何检查**the above SELECT query returned 0 rows**?
Aar*_*and 31
IF NOT EXISTS (SELECT ...)
BEGIN
INSERT ...
END
Run Code Online (Sandbox Code Playgroud)
你也可以这样做,如果你希望查询可能经常返回行(特别是很多行),这可能提供更好的短路机会:
IF EXISTS (SELECT ...)
BEGIN
PRINT 'Do nothing.';
END
ELSE
BEGIN
INSERT ...
END
Run Code Online (Sandbox Code Playgroud)
...因为它IF EXISTS会在匹配到第一行后立即返回.
我不建议@@ROWCOUNT仅使用,因为您每次都必须实现(并忽略)完整的结果集.
| 归档时间: |
|
| 查看次数: |
74133 次 |
| 最近记录: |