Jason_White
Jason_White
采纳率60%
2015-03-05 08:53 阅读 1.7k

如何禁止sql查询时数据类型的自动转化

用的是sqlserver2005,里面设计了一个表table,里面有一个字段column1设置的是nvarchar(100),里面有两条记录,分别是'2301'和'002301',现在用语句 SELECT * FROM dbo.table WHERE column1=2301,按理来说应该将2301转化为'2301'来查询或者报错,但是奇怪的是,数据库将column1中储存的字段转化为了int型,这样一来'2301'和'002301'就都转化为2301了,所以查出来了两条数据。现在我就是想知道该怎么禁止查询时数据库数值类型的转化?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • danielinbiti danielinbiti 2015-03-05 09:01

    不能怪数据库数值转换,关键在于你写法不规范。
    如果是字符串的,参数就应该加上引号。
    改代码吧

    点赞 评论 复制链接分享
  • oyljerry oyljerry 2015-03-05 09:55
    SELECT * FROM dbo.table WHERE column1='2301'
    
    
    点赞 评论 复制链接分享
  • Jason_White Jason_White 2015-03-06 02:23

    我的想法是有没有类似于控制大小写敏感那样的设置或者查询语句(排序规则)来防止这个转化的,当然修改语句是很简单的事情,只是想搞清楚还有没有其他的解决方案。

    点赞 评论 复制链接分享

相关推荐