首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

见鬼的有关问题

2012-01-07 
见鬼的问题 SETXACT_ABORTONBEGINTRANSELECT@G_1(SELECTSUBSTRING(DQZ_C,1,1)FROMCSSZB_SWHEREID_I0)SEL

见鬼的问题

SET   XACT_ABORT   ON
BEGIN   TRAN
SELECT   @G_1=(SELECT   SUBSTRING(DQZ_C,1,1)   FROM   CSSZB_S   WHERE   ID_I=0)

SELECT   @ckbj_C   =ckbj_C,@ywfs_C=ywfs_C,@pjxsfs_C=pjxsfs_C   FROM   PJxscK_H   WHERE   ID_C=@ID_C

SELECT   @FLAGE= '0 '
   
DECLARE   CURDETAIL   CURSOR   FOR   SELECT   ID_I,ZID_C,ISNULL(CW_C, ' ')   as   cw_c,jJ_F,SHL_I,tkqsj_f,DHBJ_C   FROM   PJcKMX_B     WHERE   ID_C=@ID_C
OPEN   CURDETAIL

FETCH   NEXT   FROM   CURDETAIL   INTO   @ID_I,@ZID_C,@CW_C,@JJ_F,@SHL_I,@tkqsj_f,@DHBJ_C    

WHILE   (@@FETCH_STATUS   =   0)
BEGI
            IF   (EXISTS(SELECT   *   FROM   PJKC_R   WHERE   ZID_C=@ZID_C   AND     CW_C   =@CW_C   ))
                BEGIN
                                              select   @jqKC_I=(   SELECT   sum(kc_I)   FROM   PJKC_R   WHERE   ZID_C=@ZID_C   AND     CW_C   =@CW_C   )

                              UPDATE   PJKC_R   SET   KC_I=KC_I+(-1)*@FX*@SHL_I       WHERE   ID_C=@ZID_C   ND     CW_C   =@CW_C  
                 
                              select   @jhKC_I=(   SELECT   sum(kc_I)   FROM   PJKC_R   WHERE   ZID_C=@ZID_C   AND     CW_C   =@CW_C   )
            ●   insert   into   [out](id_C,rq_D,zid_C,qkc_f,   hkc_f,ck_F,jj_F,cw_C,fx)values   (@id_C,getdate(),@ZID_C,@jqKC_I,@jhKC_I,@SHL_I,@jj_F,@cw_C,@fx)
                END
                ELSE       begin
                                ●   insert   into   [out](id_C,rq_D,zid_C,   qkc_f,   hkc_f,ck_F,jj_F,cw_C,fx)values   (@id_C,getdate(),@ZID_C,-9999,@fx*@SHL_I,@SHL_I,@jj_F,@cw_C,@fx)
 
    if   @pjxsfs_C= '客户退还 '    
update   pjckmx_bt     set   ktksh_i=ktksh_i-(-1)*@FX*@SHL_I     WHERE   ID_i=CONVERT(int,@tkqsj_f)
FETCH   NEXT   FROM   CURDETAIL   INTO     @ID_I,@ZID_C,@CW_C,@JJ_F,@SHL_I     ,@tkqsj_f,@DHBJ_C
END
CLOSE   CURDETAIL
DEALLOCATE   CURDETAIL
COMMIT   TRAN
SET   XACT_ABORT   OFF


上面带●执行后的结果为:


4382E00060952007-04-21   13:48:46.4971005080-JAA1Z   1.00.01.0
4383E00060952007-04-21   13:48:46.5131005212-JA   8.07.01.0
4387E00060952007-04-21   13:55:01.5771005080-JAA1Z   0.01.01.0
4388E00060952007-04-21   13:55:01.5771005212-JA   7.08.01.0
4389E00060952007-04-21   13:55:16.1531005080-JAA1Z   1.00.01.0
4390E00060952007-04-21   13:55:16.1531005212-JA   8.07.01.0
4518E00060952007-04-21   18:58:40.1701005080-JAA1Z   0.01.01.0


4519E00060952007-04-21   18:58:40.1701005212-JA   8.09.01.0
4520E00060952007-04-21   18:58:40.1701005080-JAA1Z   1.02.01.0
4522E00060952007-04-21   18:58:51.2001005080-JAA1Z   2.01.01.0
4523E00060952007-04-21   18:58:51.2001005212-JA   9.08.01.0
4543E00060952007-04-21   19:05:51.3271005080-JAA1Z   1.02.01.0
4544E00060952007-04-21   19:05:51.3271005212-JA   8.09.01.0
4545E00060952007-04-21   19:06:07.4801005080-JAA1Z   2.01.01.0
4546E00060952007-04-21   19:06:07.4801005212-JA   9.08.01.0

4518
4519
4520     异常了   按理论上上4520这条记录不应该产生才对呀,

[解决办法]
看下where后面
[解决办法]
去表里看看 是不是真的不应该产生
[解决办法]
●??
这是什么符号,为明白的符号不要乱用
[解决办法]
没有测试数据,光有结果,如何知道是异常?
[解决办法]

[解决办法]
up
[解决办法]
明显LZ没有贴好代码
比如while下面的begin===BEGI
else后只有begin 没有end

热点排行