Sql server 2008 数字在sql中是否被视为字符串

Sql server 2008 数字在sql中是否被视为字符串,sql-server-2008,nvarchar,Sql Server 2008,Nvarchar,这真的很简单。SQL SERVER 2008是否自动将值转换为字符串 我尝试了这个Select*from Staff Where Division=5 如果我尝试插入它,它也会起作用。 如果我把5换成5,我会得到一个错误无效列名五 除法是一种NVARCHAR。5不应该在单引号内吗?是的,SQL Server将int隐式转换为nvarchar。它还可以隐式地将nvarchar转换为int(和其他数字类型) 有关更多详细信息:在很多情况下都会发生隐式转换。例如: EXEC sp_who2 activ

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

我尝试了这个
Select*from Staff Where Division=5

如果我尝试插入它,它也会起作用。
如果我把5换成5,我会得到一个错误<代码>无效列名五


除法是一种
NVARCHAR
。5不应该在单引号内吗?

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


有关更多详细信息:

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

EXEC sp_who2 active;
是否需要将
活动的
分隔为字符串?是的,但是语法是宽容的


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

@Pha……是的,它需要单引号。如果不是,您将得到一个错误…将nvarchar值“(无)”转换为数据类型int时,Msg 245,级别16,状态1,第1行转换失败。@MikeTWebb我就在眼前。它工作得很好。也许我应该截图?非常感谢我以为我疯了