SQL Server相当于Oracle的“当没有数据发现时”异常

时间:2015-01-28 21:53:10

标签: sql oracle exception equivalent

我需要SQL Server相当于Oracle的“当没有数据发现时”异常 例如:

EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         RETURN 0;
      WHEN OTHERS
      THEN
         RETURN 0;

转换为sql server

3 个答案:

答案 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