好的,我正在尝试从存储过程中返回BIT常量。
我设法让它编译的唯一方法是使用强制转换:
CAST(0 AS BIT) AS MyBool
有没有一种更有效的方法可以在没有演员的情况下写这个?
答案 0 :(得分:5)
有些人喜欢这样做
declare @True bit,@False bit
set @True = 1
set @False = 0
然后使用@True
或@False
查询其余部分。
我认为后期编译两种方法之间的效率差异非常小,你可以用你喜欢的任何风格安全地编写它。
答案 1 :(得分:1)
据我所知 在推断数据类型时,SQL Server确实有些神奇,但它通常会谨慎行事,所以
Select 0
将始终选择一个整数,从不选择一个或一个tinyint