数字在sql中被视为字符串

时间:2012-08-03 15:52:01

标签: sql-server-2008 nvarchar

这很简单。 SQL SERVER 2008会自动将值转换为字符串吗?

我试过这个Select * from Staff Where Division = 5
如果我尝试插入它,它也可以 如果我改变5为五,我得到并且错误但是。 Invalid column name five

分部是NVARCHAR。那5个不是单引号吗?

2 个答案:

答案 0 :(得分:0)

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

有关详情:http://msdn.microsoft.com/en-us/library/ms191530.aspx

答案 1 :(得分:0)

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

EXEC sp_who2 active;

您是否应该将active划分为字符串?是的,但语法是宽容的。

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