小弟用MS SQL Server 2005,在查询分析器中写SQL语句时发现了一个怪问题。语句如下:select book_id,book_name from book where book_id=1。book_id的数据类型为int,上面的写法是正确的,实际上也正确运行了。但是我把语句改成下面这个样子:select book_id,book_name from book where book_id='1'。即把整型数据改成了字符串型,却朝阳能够正常运行。小弟把float型数据也用字符串型代替,发现朝阳可以正确运行。这是怎么回事啊?难道是SQL Server不区分数据类型?哪位大侠能够不吝赐教,小弟万分感谢!:)

解决方案 »

  1.   

    select book_id,book_name from book where book_id=1select book_id,book_name from book where book_id='1'结果一样?隐式转换
      

  2.   

    select book_id,book_name from book where book_id=1 select book_id,book_name from book where book_id='1' 
    book_id若是int,或float,double在查询的时候会自动转化为string型
      

  3.   


    book_id若是int,或float,double在查询的时候会自动转化为string型
    学习,以前也不知道...就知道整型可以这么搞.