从SQL存储过程返回BIT常量

时间:2011-02-23 11:21:44

标签: tsql sql-server-2008 casting sqldatatypes

好的,我正在尝试从存储过程中返回BIT常量。

我设法让它编译的唯一方法是使用强制转换:

CAST(0 AS BIT) AS MyBool

有没有一种更有效的方法可以在没有演员的情况下写这个?

2 个答案:

答案 0 :(得分:5)

有些人喜欢这样做

declare @True bit,@False bit
set @True = 1
set @False = 0

然后使用@True@False查询其余部分。

我认为后期编译两种方法之间的效率差异非常小,你可以用你喜欢的任何风格安全地编写它。

答案 1 :(得分:1)

据我所知 在推断数据类型时,SQL Server确实有些神奇,但它通常会谨慎行事,所以

Select 0

将始终选择一个整数,从不选择一个或一个tinyint