标题:运用UPDATE命令
只看楼主
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
结帖率:90.91%
 问题点数:0 回复次数:5 
运用UPDATE命令
UPDATE LA SET LA.A32=LB.A32,LA.A33=LB.A33 WHERE LA.A12=LB.A12 .AND. LA.A15=LB.A15 .AND. LA.A18=LB.A18 .AND. LA.A19=LB.A19  

运用UPDATE命令,有时有效,有时无效。不知为什么。
搜索更多相关主题的帖子: 命令 UPDATE 
2010-01-29 10:19
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
何时无效,来个例说一下
2010-01-29 10:29
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
得分:0 
我也没看出你的问题,下面的内容你自己去参考:
语法UPDATE[DatabaseName1!]TableName1SETColumn_Name1=eExpression1[,Column_Name2=eExpression2...]WHEREFilterCondition1[AND|ORFilterCondition2...]]参数描述[DatabaseName1!]TableName1TableName1指定要更新记录的表。DatabaseName1指定包含表的非当前数据库名。如果包含表的数据库不是当前数据库,则应包含这个数据库名。在数据库名称与表名之间有一个感叹号(!)。SETColumn_Name1=eExpression1[,Column_Name2=eExpression2指定要更新的列以及这些列的新值。如果省略了WHERE子句,在列中的每一行都用相同的值更新。WHEREFilterCondition1[AND|ORFilterCondition2...]]指定要更新的记录。FilterCondition指定要更新的记录所符合的条件。可以根据需要加入多个筛选条件,条件之间用AND或OR操作符连接。也可以用NOT操作符对逻辑表达式的值取反,或者使用EMPTY()函数检查字段是否为空。说明UPDATE-SQL命令只能用来更新单个表中的记录。注意,UPDATE-SQL支持子查询。与REPLACE命令不同的是,在更新可共享访问的表中的多个记录时,UPDATE-SQL命令使用了记录锁。在多用户的情况下,使用记录锁能减少记录竞争,但是可能会降低使用性能。为了达到最好的性能,请以独占使用方式打开表或用FLOCK()函数锁定表。
UPDATE命令包含此命令是为了提供向后兼容性。请使用UPDATE-SQL代替。

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2010-01-29 11:18
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:0 
9.0版

UPDATE LA SET LA.A32=LB.A32,LA.A33=LB.A33 from lb WHERE LA.A12=LB.A12 .AND. LA.A15=LB.A15 .AND. LA.A18=LB.A18 .AND. LA.A19=LB.A19  
2010-01-30 10:03
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:0 
USE TZB SHARED
COPY TO LB FIELDS A15,A17,A18,A20,A25,A92
USE LB
INDEX ON STR(A15)+A17+A18 TAG A15
SELECT 0
USE TZU SHARED
SORT ON A65 TO LU FOR SUBSTR(DTOS(A65),1,6)=NE+YE
USE LU &&导入A25
INDEX ON STR(A15)+A17+A18 TAG A15
SET RELATION TO STR(A15)+A17+A18 INTO LB
UPDATE LU SET LU.A25=LB.A25 WHERE LU.A15=LB.A15 .AND. LU.A17=LB.A17 .AND. LU.A18=LB.A18   

上述程序段,运行正常。都能导入A25。



USE \\APP002\SCXT\GYS\FPA SHARED
COPY TO LA FOR !('-1-'$A28 .OR. '-2-'$A28.OR. '-4-'$A28)
USE FPA SHARED
COPY TO LB
USE LB
INDEX ON A12+A15+A18+A19 TAG A12
SELECT 0
USE LA
INDEX ON A12+A15+A18+A19 TAG A12
REPLACE ALL A32 WITH ' ',A33 WITH {}
SET RELATION TO A12+A15+A18+A19 INTO LB &&导入
UPDATE LA SET LA.A32=LB.A32,LA.A33=LB.A33 WHERE LA.A12=LB.A12 .AND. LA.A15=LB.A15 .AND. LA.A18=LB.A18 .AND. LA.A19=LB.A19   
 

这个程序段,也执行正常。






USE \\APP002\SCXT\GY8\KCC SHARED
SORT ON A12,A15,A18 TO LA FOR A10>={^2010-01-26}
USE FL8 SHARED
COPY TO LB
USE LB
INDEX ON A1 TAG A1
SELECT 0
USE LA
ALTER TABLE LA ADD A32 C(2)
INDEX ON A1 TAG A1
SET RELATION TO A1 INTO LB &&导入
UPDATE LA SET LA.A32=LB.A32 WHERE LA.A1=LB.A1

这段程序不执行导入。A32字段数据不更新。好奇怪。


谢谢茵梦湖。









2010-02-02 14:19
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
得分:0 
我使用的是8.0版。
2010-02-02 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-296819-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.155615 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved