update tableA
   set a=t.a
  from tableA, tableA t
 where tableA.id = 1
   and t.id = tableA.id + 1

解决方案 »

  1.   

    数据库什么版本?有Top 1 应该可以执行的
      

  2.   

    测个例子:--Microsoft SQL Server 2008 R2 
    USE tempdb
    GO
    CREATE TABLE #(ID INT IDENTITY,Col NTEXT)
    INSERT INTO # SELECT REPLICATE('AA',4000)
    INSERT INTO # SELECT REPLICATE('BB',4000)UPDATE # SET Col=(SELECT TOP 1 Col FROM # WHERE ID=2) WHERE ID=1
    SELECT * FROM #
    /*
    ID Col
    1 BB
    2 BB
    */
    DROP TABLE #
      

  3.   


    数据库是sqlserver2000
    对于其它字段是可以,对于ntext字段报错
      

  4.   

    ntext列数据大于8K时,不能用update,需要用updatetext命令来实现(好像SQL2008以前没有这个命令)
      

  5.   


    你用的是什么版本数据库?有没有用1楼方法,1楼方法应该是可以在SQL2000执行的
      

  6.   

    在SQL server 2000 中 如何更新表中的text、ntext 或 image 字段信息
    http://www.cnblogs.com/macroxu-1982/archive/2007/12/07/640725.html