none
SQL server 2008 R2 编辑数据更新的错误信息 RRS feed

  • 问题

  • 新安装SQL server 2008 R2,在编辑数据表数据更新时,出现出错信息“在将varchar值'send' 转换成数据类型bit时失败”,如图,其中send字段数据类型为bit类型,在2008里查询窗口返回为'Flase'和'True',以前在sql2000时同样操作都没有问题的,该如何解决?

    2012年7月10日 7:16

答案

全部回复

  • 1.使用UPDATE 语句实现更新。

    或者

    2.bit 字段 填写 0 和1 就好了。只有这2个值。


    family as water

    2012年7月10日 7:22
  • 补充信息:

    可以通过update更新数据,但有时临时修改数据没有直接数据表修改方便。想直接修改send字段的数值为0或1,系统判断不是有效的布尔值。直接输入Flase或True也会出现转换bit类型失败的信息。我认为应该直接修改数据表时,对bit类型的数据有特殊要求。请帮忙解决!谢谢

    2012年7月10日 7:26
  • 估计是被微软禁止这样操作了。
    2012年7月10日 7:47
  • create table canghai(id bit)
    
    insert into canghai
    select -2 union all
    select 2 union all
    select 1 union all
    select 0
    
    select * from canghai
    /*
    id
    -----
    1
    1
    1
    0
    */
    可以的呀...
    2012年7月10日 8:00
    版主
  • 刚才我试了下,新建一个表,两个字段,一个nchar一个bit,确实可以修改更新的,看来,是我数据库的问题了。

    但问题应该出在哪里呢,数据库是从sql2000迁移过来的,以前都没什么问题,怎么解决这个问题?

    2012年7月10日 8:15
  • 从你的错误提示来看,你不要更新bit 字段为0和1以外的值,就应该不会有错误了。

    出现出错信息“在将varchar值'send' 转换成数据类型bit时失败

    send不是0也不是1,所以是不行的。

    2012年7月10日 8:39
    版主
  • 有答案了,呵呵

    我尝试将send字段修改为其它名称,就可以更新了。

    难道send在2008中是保留字?

    2012年7月10日 8:50
  • http://msdn.microsoft.com/en-au/library/ms188407(zh-cn).aspx

    参考

    你上面的错误提示中的send是字符串,不是字段名。 

    2012年7月10日 9:52
    版主
  • 是sql2008 R2新增的关键字吗?

    给我写信: QQ我:点击这里给我发消息

    2012年7月11日 2:02
  • 检查一下,看是不是表上设置有触发器抛出的错误

    2012年7月19日 12:53
  • 你可以把这个表 select * into 到另一个表编辑看看,如果都有同样的问题,可能是跟编辑器相关,否则应该是这个表相关联的一些东西(重点怀疑的是trigger, 另外像约束之类也会在存储数据时工作,这些也许是导致错误的原因)
    2012年7月19日 12:55