Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当位默认为NULL时,存储过程返回0_Sql_Sql Server - Fatal编程技术网

Sql 当位默认为NULL时,存储过程返回0

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您将结果集与返回代码混淆。存储过程可以不发出、发出一个或多个结果集。但是,它只能有一个返回代码

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

您将结果集与返回代码混淆。存储过程可以不发出、发出一个或多个结果集。但是,它只能有一个返回代码/结果代码。默认情况下,返回代码为0(如果尝试返回null,它将失败或强制为0,具体取决于/db/etc的版本)

不,它不返回,它返回
null
@拉努。是的,我说了一些环境。你能提供一个复制吗?在每一个版本的SQL Server上,这个过程都会返回一个类型为
BIT
的单行、单列结果集,返回值为
INT
,即0。如果“环境”中存在差异,则您很可能看到客户机代码中的差异(例如,SSMS如何显示结果,是否选中了“结果到文本”选项等)。编辑问题以解决“返回”与“选择”之间的混淆