我试了以下,好像不可以。
我的语句是:
update t_indemnityinfo,t_feelogset t_indemnityinfo.checkflag = '0'
        t_feelog.opttype = "20"where t_indemnityinfo.payableno = t_feelog.payableno
and t_feelog.payableno = "CDAA200211022800/02073"提示语法错误,在两个表名之间

解决方案 »

  1.   

    不行的,但好象由两个表生成的RECORDSET作UPDATE时可以自动更新相关表
      

  2.   

    一句sql改多个表是不行的,不过你可以用触发器实现在一个表改变时对其它表进行修改。
      

  3.   

    Triggers can do this kind of jobs, definitely.Firstly, it depends on the definition of your relations(tables) which means if you created the table with the referencetial attribute to be cascade, the DBMS would update it accordingly.Otherwise, create a temprory table with desired foreign keys to store all changed records and then update all tables as transaction right after finished the generation of temp table.
    However, there would be some concurrency trouble need to considered in your application.
      

  4.   

    你写一个存储过程也可以呀,否则也可使用事务处理的,看你到底是因什么原因来UPDATE而已!
      

  5.   

    这是SQL本身的限制, 你必需要用其他方法来完成.
    如楼上各位所述的触发器(Trigger). 或是透过存储过程(Stored
     Procedures)专做有关的更新
      

  6.   

    哦 朋友再学学基础吧 看看sql 92对你有帮助
      

  7.   

    IT's OK!
    you test following :update a  set a.field1= values   from table1 a,table2 b 
     where a.XXX=b.XXX
      

  8.   

    error   , it only update  a  table ,I am sorry !!
      

  9.   

    禁用并重新启用一个约束
    下例禁用用于限制可接受的薪水数据的约束。WITH NOCHECK CONSTRAINT 与 ALTER TABLE 一起使用,以禁用该约束并使正常情况下会引起约束违规的插入操作得以执行。WITH CHECK CONSTRAINT 重新启用该约束。CREATE TABLE cnst_example 
    (id INT NOT NULL,
     name VARCHAR(10) NOT NULL,
     salary MONEY NOT NULL
        CONSTRAINT salary_cap CHECK (salary < 100000)
    )-- Valid inserts
    INSERT INTO cnst_example VALUES (1,'Joe Brown',65000)
    INSERT INTO cnst_example VALUES (2,'Mary Smith',75000)-- This insert violates the constraint.
    INSERT INTO cnst_example VALUES (3,'Pat Jones',105000)-- Disable the constraint and try again.
    ALTER TABLE cnst_example NOCHECK CONSTRAINT salary_cap
    INSERT INTO cnst_example VALUES (3,'Pat Jones',105000)-- Reenable the constraint and try another insert, will fail.
    ALTER TABLE cnst_example CHECK CONSTRAINT salary_cap
    INSERT INTO cnst_example VALUES (4,'Eric James',110000)
    WITH CHECK | WITH NOCHECK
    指定表中的数据是否用新添加的或重新启用的 FOREIGN KEY 或 CHECK 约束进行验证。如果没有指定,对于新约束,假定为 WITH CHECK,对于重新启用的约束,假定为 WITH NOCHECK。 WITH CHECK 和 WITH NOCHECK 子句不能用于 PRIMARY KEY 和 UNIQUE 约束。 如果不想用新 CHECK 或 FOREIGN KEY 约束对现有数据进行验证,请用 WITH NOCHECK,除了个别情况,不建议这样使用。新约束将在以后的所有更新中生效。任何在添加约束时由 WITH NOCHECK 抑制的约束违规都可能导致将来的更新失败,如果这些更新操作要更新的行中包含不符合约束条件的数据。 查询优化器不考虑用 WITH NOCHECK 定义的约束。将忽略这些约束,直到使用 ALTER TABLE table CHECK CONSTRAINT ALL语句重新启用这些约束为止。上例是用Transact-SQL语句的方法,下面是在企业管理器中的方法。对 INSERT 和 UPDATE 语句禁用外键约束
    如果知道新数据将违反约束或约束仅应用于数据库中的现有数据,则选择该选项以在 INSERT 和 UPDATE 事务期间禁用外键约束。对 INSERT 和 UPDATE 语句禁用外键约束 
    1、在数据库关系图中,右击包含外键的表,然后从快捷菜单中选择"属性"命令。 
    -或-
    为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
    2、选择"关系"选项卡。
    3、从"选定的关系"列表中选择关系。
    4、清除"对 INSERT 和 UPDATE 强制关系"复选框。 
    5、保存。
    添加或修改数据后,若要确保约束能应用到后续的数据修改中,应该选择该选项。
    注意   如果打算使用触发器执行数据库操作,则必须禁用外键约束才能使触发器运行。
      

  10.   

    MS SQL Server 2000中,可用级联更新。
    级联更新相关的字段
    无论何时更新主键值,都指示 DBMS 自动更新该关系的外键值。在企业管理器中
    1、在数据库关系图中右击与要修改的外键对应的关系,然后从快捷菜单中选择"属性"命令。 
      -或-
      为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
    2、选择"关系"选项卡。
    3、从"选定的关系"列表中选择关系。
    4、选中"级联更新相关的字段"复选框。
    5、保存。如果要用语句改为级联更新的话,请参考 ALTER TABLE 语句。
      

  11.   

    在论坛:SQL Server 中已有回答。 
    http://www.csdn.net/Expert/TopicView1.asp?id=818989
      

  12.   

    就单独的update,delete等(等后面没了)sql语言,无论以何种形式(比如视图)表现,从严格意义讲,只能同时针对一个基表进行更改、删除的操作——这应该是SQL基本标准决定的。