【问题标题】:Are numbers seen as strings in sql数字在sql中被视为字符串吗
【发布时间】:2012-08-03 15:52:00
【问题描述】:

这真的很简单。 SQL SERVER 2008 是否会自动为您将值转换为字符串?

我试过这个Select * from Staff Where Division = 5
如果我尝试插入它,它也可以工作。
如果我将 5 更改为 5,我会得到错误。 Invalid column name five.

部门是NVARCHAR。 5不应该在单引号内吗?

【问题讨论】:

  • @Pha....是的,它需要单引号。如果不是,您将收到错误消息...Msg 245, Level 16, State 1, Line 1 将 nvarchar 值 '(None)' 转换为数据类型 int 时转换失败。
  • @MikeTWebb 我就在我面前。它工作得很好。也许我应该截图?

标签: sql-server-2008 nvarchar


【解决方案1】:

是的,SQL Server 将 int 隐式转换为 nvarchar。它还可以将 nvarchar 隐式转换为 int(和其他数字类型)。

更多详情:http://msdn.microsoft.com/en-us/library/ms191530.aspx

【讨论】:

    【解决方案2】:

    在很多情况下都会发生隐式转换。例如:

    EXEC sp_who2 active;
    

    您不需要将active 分隔为字符串吗?是的,但语法是宽容的。

    我的建议:始终正确界定数据类型,并忽略异常。他们得到全面修复的机会几乎为零。

    【讨论】:

    • 非常感谢,虽然我疯了
    猜你喜欢
    • 2017-11-20
    • 2015-02-23
    • 2014-11-01
    • 1970-01-01
    • 2013-08-12
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多