SQL Server 2008 - 编辑表:位列需要“True” 或“假”

发布于 2024-07-09 11:47:51 字数 832 浏览 9 评论 0原文

与其说是一个问题,不如说是一个观察...

我只是在我的开发计算机上升级到 SQL Server 2008,以期升级我的实时应用程序。 我没有预料到会出现任何问题,因为[我认为]我通常使用标准 T-SQL,并且可能与 ANSI 标准 SQL 相差不远。 到目前为止一切顺利,但我确实被一个非常简单的更改所困扰:

我正在创建一个简单的小型查找表来存储代码列表,并包括一个位列来指示当前的默认代码。 但是,当我使用新的/修改后的“编辑前 200 行”选项,并在位列中输入 0 和 1 时,出现错误:

'单元格值无效 - 字符串原为 未被识别为有效的布尔值'

经过一番绞尽脑汁之后,我尝试了 True 和 False - 并且它们起作用了。

所以看来这个新的编辑功能需要输入 4 或 5 个字符,而不是之前的 1 个。

进一步检查,我们仍然可以使用 '...where bitval = 1' 但现在也可以使用'...其中 bitval = 'true''。 但返回的任何结果仍然会将这些位列呈现为 0 或 1。

这一切听起来像是倒退了半步。 不是世界末日,而是不必要的烦恼。

有人对这个问题有任何见解吗? 或者 SQL Server 2008 还有其他新的问题吗?

2012 年更新: 刚刚安装 SQL Server 2012 后,我注意到这种行为已被“纠正” - 就像以前一样,我现在可以使用“编辑前 200 行”选项直接在行中输入 1/0 而不是 True/False。 这是一件小事,但我很高兴。

Not so much a question as an observation...

I'm just upgrading to SQL Server 2008 on my development machine in anticipation of upgrading my live applications. I didn't anticipate any problems since [I think] I generally use standard T-SQL, and probably not too far from ANSI standard SQL. So far so good, but I was really thrown by a very simple change:

I was creating a simple, small look-up table to store a list of codes and including a bit column to indicate the current default code. But when I used the new/modified 'Edit Top 200 Rows' option, and entered my 0s and 1s in the the bit column I got an error:

'Invalid value for cell - String was
not recognised as a valid boolean'

After a bit of head-scratching, I tried True and False - and they worked.

So it seems this new Edit feature requires 4 or 5 characters to be typed, rather than the previous 1.

Checking further, we can still use '...where bitval = 1' but can now also use '...where bitval = 'true''. But any results returned render these bit columns as 0 or 1 still.

It all sounds like half a step backwards. Not the end of the world, but and unnecessary annoyance.

Does anybody have any insight on this issue? Or there any other new Gotchas with SQL Server 2008?

2012 Update:
Having just installed SQL Server 2012, I notice that this behaviour has been 'corrected' - Just as I could before, I can now enter 1/0 rather than True/False directly into rows, using the 'Edit Top 200 Rows' option. It's a small thing, but I'm happy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七堇年 2024-07-16 11:47:51

您始终能够使用“True”和“False”与 BIT 列进行比较...我认为这种“强制”更改是一个很好的做法,可以明确该字段是 BIT,而不是 INT 。

就我个人而言,我喜欢 C# 不支持“if (0) ...”,我想这只是为了清晰起见。

You've always been able to use 'True' and 'False' to compare against BIT columns... I think this change to "force" it is a good one to be clear that the field is a BIT, and not an INT.

Personally, I like that C# doesn't support "if (0) ..." I guess it's just a preference for clarity.

深空失忆 2024-07-16 11:47:51

但他们搞砸了,只执行了一半规则尝试在更新语句中使用 ...=True 并看看会发生什么。 要么一路走下去,要么根本不走。 抱歉,Microsoft,无法在该项目上给您任何标记

Except they blew it and only half enforced the rule Try using ...=True in an update statement and see what happens. Either go all the way or not at all. Sorry Microsoft, can't give you any marks on that one

咆哮 2024-07-16 11:47:51

刚刚发现这个(在准备其他东西之后)按设计内置

Just found this (after preparing soemthing else) Built in by design

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文