【发布时间】:2011-07-02 16:32:36
【问题描述】:
好的,我正在尝试从存储过程中返回一个 BIT 常量。
我设法让它编译的唯一方法是使用强制转换:
CAST(0 AS BIT) AS MyBool
有没有更有效的方法来写这个而不用强制转换?
【问题讨论】:
标签: tsql sql-server-2008 casting sqldatatypes
好的,我正在尝试从存储过程中返回一个 BIT 常量。
我设法让它编译的唯一方法是使用强制转换:
CAST(0 AS BIT) AS MyBool
有没有更有效的方法来写这个而不用强制转换?
【问题讨论】:
标签: tsql sql-server-2008 casting sqldatatypes
有些人喜欢做以下事情
declare @True bit,@False bit
set @True = 1
set @False = 0
然后在查询的其余部分使用@True 或@False。
我想在编译后这两种方法之间的效率差异非常小,你可以放心地用你喜欢的任何风格编写它。
【讨论】:
据我所知没有。
在推断数据类型时,SQL Server 确实有一些魔力,但它通常会因谨慎而犯错,所以
Select 0
将始终选择一个整数,而不是位或 tinyint
【讨论】: