请问: 影响的行数不一样
BEGIN   TRAN    
 DELETE   FROM   A 
 FROM   FAC030T   A   ,   FAC030T_0925_D   B 
 WHERE   A.ACCNT   =   B.ACCNT 
 AND         A.DEPT_CD   =   B.DEPT_CD 
 AND         A.COMP_CD   =   B.COMP_CD 
 AND         A.PNDT1   =   B.PNDT1 
 AND         A.PNDT2   =   B.PNDT2 
 AND         A.AC_DT      =   B.AC_DT 
 AND         A.ASL_NO   =   B.ASL_NO 
 AND         A.ASL_SEQ   =   B.ASL_SEQ 
 ROLLBACK   TRAN        
 SELECT   A.* 
 FROM   FAC030T   A   ,   FAC030T_0925_D   B 
 WHERE   A.ACCNT   =   B.ACCNT 
 AND         A.DEPT_CD   =   B.DEPT_CD 
 AND         A.COMP_CD   =   B.COMP_CD 
 AND         A.PNDT1   =   B.PNDT1 
 AND         A.PNDT2   =   B.PNDT2 
 AND         A.AC_DT      =   B.AC_DT 
 AND         A.ASL_NO   =   B.ASL_NO 
 AND         A.ASL_SEQ   =   B.ASL_SEQ   
 这两个出现影响的行数不一样   ,   请问是什么原因
------解决方案--------------------因为两个表之间的关系不是一对一,而是一对多或者多对多;而第一个操作删除针对A表,所删除的记录是A表中实际符合条件的记录数。
------解决方案--------------------delete  a 中刪除的是a中滿足條件的數據 
 而select a.* from a,b  中搜索出來的並不是a中的數據項,而是a,b 鏈接產生的表, 
 表中可能交叉數據,固影响的行数不一样
------解决方案--------------------create table A(ID int,Name varchar(20)) 
 insert into A select 1, 'AAAA ' 
 insert into A select 2, 'BBBB ' 
 insert into A select 3, 'CCCC ' 
 insert into A select 4, 'DDDD '   
 create table B(ID int,A_ID int,Code varchar(20)) 
 insert into B select 1,1, 'XXXX ' 
 insert into B select 2,2, 'XXXX ' 
 insert into B select 3,1, 'XXXX ' 
 insert into B select 4,3, 'XXXX ' 
 insert into B select 4,4, 'XXXX ' 
 insert into B select 4,2, 'XXXX ' 
 insert into B select 4,3, 'XXXX ' 
 go   
 --因为A/B两表存在一对多的关系,因此在输出的结果集中存在重复的情况 
 --即A表中ID分别为1/2/3的记录,受影响行数为6 
 SELECT A.* FROM A,B WHERE A.ID=B.A_ID 
 /* 
 ID          Name                  
 ----------- --------------------  
 1           AAAA 
 2           BBBB 
 1           AAAA 
 3           CCCC 
 4           DDDD 
 2           BBBB 
 3           CCCC 
 */ 
 go   
 --该SQL语句只删除了A表中的四条记录 
 DELETE A FROM A,B WHERE A.ID=B.A_ID 
 go   
 drop table A,B 
 go