Sql 当位默认为NULL时,存储过程返回0
SQL Server在应输出null时输出0。这并不是每个SQL Server都会发生的。我检查了SQL的版本,它们都是2014年的Sql 当位默认为NULL时,存储过程返回0,sql,sql-server,Sql,Sql Server,SQL Server在应输出null时输出0。这并不是每个SQL Server都会发生的。我检查了SQL的版本,它们都是2014年的 CREATE PROCEDURE wt.testbit (@is_bit bit = NULL) AS SELECT @is_bit GO EXEC wt.testbit 这将返回一个包含1行和1列的结果集,在某些环境中1列为空,在其他环境中为0您将结果集与返回代码混淆。存储过程可以不发出、发出一个或多个结果集。但是,它只能有一个返回代码
CREATE PROCEDURE wt.testbit
(@is_bit bit = NULL)
AS
SELECT @is_bit
GO
EXEC wt.testbit
这将返回一个包含1行和1列的结果集,在某些环境中1列为空,在其他环境中为0您将结果集与返回代码混淆。存储过程可以不发出、发出一个或多个结果集。但是,它只能有一个返回代码/结果代码。默认情况下,返回代码为0(如果尝试返回null,它将失败或强制为0,具体取决于/db/etc的版本)不,它不返回,它返回
null
@拉努。是的,我说了一些环境。你能提供一个复制吗?在每一个版本的SQL Server上,这个过程都会返回一个类型为BIT
的单行、单列结果集,返回值为INT
,即0。如果“环境”中存在差异,则您很可能看到客户机代码中的差异(例如,SSMS如何显示结果,是否选中了“结果到文本”选项等)。编辑问题以解决“返回”与“选择”之间的混淆