我正在使用MS SQL Server 2014 ..我的存储过程为;
CREATE PROCEDURE getId(
@Api_Id INT
,@xmlRequest VARCHAR(max) out)
AS
BEGIN
SELECT xmlRequest FROM Api_request
WHERE Api_id = @Api_id
END;
我想添加逻辑,如果以下语句没有返回任何内容:
SELECT xmlRequest FROM Api_request 在哪里Api_id = @Api_id
例如:
CREATE PROCEDURE getId(
@Api_Id INT
,@xmlRequest VARCHAR(max) out)
AS
BEGIN
SELECT xmlRequest FROM Api_request
WHERE Api_id = @Api_id
/*if result set empty*/
/* will add some logic here */
END;
如何检查结果集是空的。
答案 0 :(得分:2)
您可以使用java.*
:
IF NOT EXISTS
答案 1 :(得分:1)
一种方法是使用@@ROWCOUNT。这将返回受最后一个语句影响的行数。
IF (@@ROWCOUNT) > 0
BEGIN
SELECT 'Populated Resultset';
END
ELSE
BEGIN
SELECT 'Empty Resultset';
END
;
我个人更喜欢@ GiorgosBetsos的方法。将IF,NOT EXISTS和QUERY组合成一个语句更简洁,更容易理解。
答案 2 :(得分:0)
你也可以这样做:
IF (SELECT TOP 1 xmlRequest FROM Api_request WHERE Api_id = @Api_id) IS NULL
BEGIN
/*if result set empty*/
/* will add some logic here */
END