我们可以从存储过程返回null

Sha*_*pta 7 t-sql database sql-server stored-procedures sql-server-2005

我们可以从存储过程返回null值.我不想使用collase或isnull.我想在前端捕获NULL.可能吗 ?

编辑:

我在用 Sql Server 2005

例如.在哪里我想用

CREATE PROCEDURE [Authentication].[spOnlineTest_CheckLogin]

  @UserName  NVARCHAR(50)
AS
 BEGIN TRY
  BEGIN TRAN
                    COMMIT TRAN
     RETURN NULL
        END TRY
Run Code Online (Sandbox Code Playgroud)

错误 'spOnlineTest_CheckLogin'过程尝试返回NULL状态,这是不允许的.将返回状态0.消息0,级别11,状态0,行0当前命令发生严重错误.结果(如果有的话)应该被丢弃.

Meh*_*ari 7

不,存储过程的返回类型是INT,它不能为null.


SQL*_*ace 7

使用输出参数,例如

CREATE PROCEDURE Test
  @UserName  NVARCHAR(50), @Status int output
AS
 BEGIN TRY
  BEGIN TRAN
                    COMMIT TRAN
     set @Status = null
        END TRY
        begin catch
        end catch
        go
Run Code Online (Sandbox Code Playgroud)

然后这样称呼它

  declare @s int 
  set @s =5
  exec Test'bla',@s output
  select @s --will be null
Run Code Online (Sandbox Code Playgroud)