我需要SQL Server相当于Oracle的“当没有数据发现时”异常 例如:
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN 0;
WHEN OTHERS
THEN
RETURN 0;
转换为sql server
答案 0 :(得分:1)
如果您确实需要使用异常处理,那么您可以执行以下操作:
BEGIN TRY
/* your other code */
IF NOT EXISTS(SELECT * FROM table WHERE [...])
THROW 50000, 'Your error messages here!', 1
/* more code */
END TRY
BEGIN CATCH
/* exception handling goes here */
END CATCH
如果没有,您可以使用 IF NOT EXISTS (SELECT * FROM blah)
答案 1 :(得分:0)
使用 @rowcount 查看从一条选定的陈述中得出的记录数。
选择@l_emp_name = emp_name 从员工那里 其中employee_id = 1313;
如果@@ rowcount> 1-在oracle中表示TOO_MANY_ROWS 打印“行太多!”
如果@@ rowcount = 0-在oracle中表示NO_DATA_FOUND 打印“行太多!”
如果@@ rowcount = 1 ---在oracle中表示yaaaay !!一张记录 打印“获得1条记录,快乐的日子!”
答案 2 :(得分:0)
DECLARE @rc INT = 1
IF NOT EXISTS(SELECT * FROM table WHERE ...) SET @rc = 0
RETURN @rc