与其说作为观察一个问题...

我刚刚升级到SQL Server 2008我的开发机器上升级我的生活应用的期待。我没有预料到的任何问题,因为[我觉得]我一般使用标准的T-SQL,而且很可能没有太多的ANSI标准的SQL远。到目前为止好,但我是真的很简单的变化抛出:

我创建一个简单的,小的查找表来存储代码的列表,并且包括一个比特的列,以指示当前的默认代码。但是,当我使用新的/修改“编辑前200行”选项,并进入我的0和1的位专栏中,我得到了一个错误:

  

“用于细胞的值无效 - 字符串是   没有被识别为有效的布尔值'

有点头刮后,我试图真假 - 和他们的工作。

因此,似乎这种新的编辑功能需要4点或5的字符被键入,而不是以前的1。

进一步检查,我们仍然可以使用“...where bitval = 1”,但现在也可以使用“...where bitval = 'true'”。但是,任何结果返回使得这些比特列作为0或1静止。

这一切听起来像向后半步。世界的不结束,但和不必要的烦扰。

没有任何人有任何关于此问题的见解?或有SQL Server 2008中的任何其他新的陷阱?

<强> 2012更新: 刚刚安装了SQL Server 2012中,我注意到,这一行为也被“纠正” - 正如我之前可以,我现在可以进入1/0而不是真/假直接进入行,并使用“编辑前200行”选项。这是一个小的事情,但我很高兴。

有帮助吗?

解决方案

除非他们搞砸了,只有一半执行规则尝试使用... = true在更新语句,并看看会发生什么。无论是走一路或根本没有。对不起微软,不能给你一个任何标志

其他提示

您一直可以使用“真”和“假”来比较BIT列...我认为这种变化为“力”这是一个很好的明确的是,该领域是一点,不是一个INT。

就个人而言,我喜欢C#不支持“如果(0)...”我想这只是为了清晰的偏爱。

刚刚发现这个(制备soemthing别的后)内置在由设计

scroll top