我最后想先把字段值取出来,然后加在一起再update,但这样太麻烦了,我能力有限,请大家教一下快捷方法

解决方案 »

  1.   


    --> 测试数据:[表一]
    if object_id('[表一]') is not null drop table [表一]
    create table [表一]([xh] int,[zym] varchar(10))
    insert [表一]
    select 1,'资源1' union all
    select 2,'资源2' union all
    select 3,'资源3' union all
    select 4,'资源4' union all
    select 5,'资源5' union all
    select 6,'资源6'
    declare @name varchar(3)
    set @name='zyn'
    declare @xh int
    set @xh=2update [表一]
    set [zym]=[zym]+@name where [xh]=@xhselect * FROM [表一]
    --我的一个例子,没任何问题
    /*
    xh zym
    1 资源1
    2 资源2zyn
    3 资源3
    4 资源4
    5 资源5
    6 资源6
    */
      

  2.   

    Quote=引用 2 楼  的回复:]
    引用 1 楼 的回复:你得上数据。目测没什么问题
    [/Quote]随便举个例子,表中的数据是:ID-11, Name-金刚葫芦娃,Address-上东街,然后我update table Name=Name+'哈哈' where ID=11
    执行没返回错误,但再一查看表,就成了 11,0,上东街
      

  3.   

    额,弱弱的请问一下,您是在sql中执行的还是在sqlite3环境中执行的?在sql环境中执行,我的也没有任何问题,但是在sqlite3中执行,就成了我上面说的结果了
      

  4.   

    你说我这句有错么?
    update table Name=Name+'哈哈' where ID=11我就直接用的这查询的呀
      

  5.   

    update table set Name=Name+'哈哈' where ID=11你如果在查询分析器运行正确,那语句就没问题
      

  6.   

    是的,我在Sql里能正确执行,但是在sqlite3里就不行,应该是sqlite3不支持这样的语句,我就是想问问大家该怎么解决这类问题
      

  7.   

    @Name变量有没有初始化?如果没有初始化,update后就是NUll
      

  8.   

    我是直接传值进去呀update table Name=Name+'哈哈' where ID=11这个‘哈哈’不是就初始化了么?
      

  9.   


    Table 中Name 字段是否可以为空? 如果可以,那么相应ID(=11)的数据有没有Name 为空的数据,如果有这样的数据你的这种Update会出异常。
      

  10.   


    现在是这样,table里面我插入了一条数据
    11 | 金刚葫芦娃 | 上东街
    然后我想把Name这个字段改一下,
    update table Name=Name+'和三毛' where ID=11结果最后就直接成这样了
    11 | 0 | 上东街
      

  11.   

     update t 
     set name = isNull(name, '') + @Name 
     where id = @ID
      

  12.   


    确实有点奇怪,可以把建表代码,和你的测试数据Script出来,让大家测试一下吗?
      

  13.   


    行,没问题,我也只是写了一个测试代码,你也可以自己试试的
    建表create table test(id integer, Name nvarchar(20), Address nvarchar(50));
    插入数据insert into test(id, Name, Address) values (11, '金刚葫芦娃', '上东街');
    更新字段update test set Name=Name+'和三毛' where id=11;
      

  14.   


    我这里运行一切正常,可能和你的运行环境有关. SQLLite3是个查询编辑器吗?是不是它的Bug?
      

  15.   


    一切正常?你是在sqlite3环境中执行的么?你不要说你不知道sqlite?我要是在sql中执行那也是正常的
      

  16.   

    确实不知道sqllite是什么?这里讨论的问题好像都是基于SQL Server的问题
      

  17.   

    UPDATE Vouch
    Set nVNo = nVNo + 1
    WHERE
    nAcctID = 2
    AND cYear = 2014
    AND cMon = 1
    AND cVKind = '记'
    AND nVNo >= 2
    AND bTmp = 0这样的SQL有啥问题?