UPDATE TableA SET (SELECT [name] FROM syscolumns WHERE id=(SELECT id FROM sysobjects WHERE (name='TableA')) AND name!='auto_id') = (SELECT (SELECT [name] FROM syscolumns WHERE id=(SELECT id FROM sysobjects WHERE (name='TableA')) AND name!='auto_id') FROM TableA WHERE auto_id=2) WHERE auto_id=1;以上小弟在執行查詢時SQL回應SET子句不完全、where附近敘述不正確等等...
但結構應無遺漏,還請各位高手先進釋疑,感激不盡!

解决方案 »

  1.   

    要用动态语句拼出SQL执行的,再不然就老老实实全写上
      

  2.   

    UPDATE语句格式
    update 表名 set 列名=xx
    from  表名 where  条件
      

  3.   

    UPDATE TB SET A=..B=.. FROM TBB,TB WHERE条件
      

  4.   

    補充說明:
    這是使用於MS SQL 2005,小弟是從以下查詢式來延伸到我所需要的update動作
    (SELECT [name] FROM syscolumns WHERE id=(SELECT id FROM sysobjects WHERE (name='TableA')) AND name!='auto_id')
    這是用於查詢某資料表所有欄位但不包含自動編號欄位的所有名稱,
    我要update的資料表欄位因數量龐大,故須以此查詢方式來帶出欄位名稱。