以下語句好像陷入了死循環,得到的結果會重複顯示一下我PRINT的數字!
麻煩大家幫忙看下!2
0(0 個資料列受到影響)
3
0
4
2
0(0 個資料列受到影響)
3
0
4
2
0
USE SC_1GO--定義游標
DECLARE @REF_MS       CHAR(20)        --料號1--DECLARE @REF_M1       CHAR(20)        --料號2DECLARE @REF_REGIST   CHAR(14)        --Registration Date TimeDECLARE @STATE_QUERY  CHAR(01)        --Query Status(I,U,D)DECLARE @REF_KEY      CHAR(10)        --CodeMapping KeyDECLARE @REF_CONF     CHAR(01)        --Confirm Date timeDECLARE @REF_WORKER   CHAR(12)        --WorkerDECLARE @REF_CONFDATE CHAR(14)        --Worker Date TimeDECLARE @REF_MTRL     VARCHAR(10)     --Mat.IdentityDECLARE @REF_TMP1     NVARCHAR(100)   --Temporary FieldDECLARE @REF_TMP2     NVARCHAR(100)   --Temporary FieldDECLARE @REF_TMP3     NVARCHAR(100)   --Temporary Field DECLARE cursor1 CURSOR FOR--游標為 BN_CHANGE table 使用--    SELECT REF_M1,     REF_MS,     REF_REGIST,   STATE_QUERY, REF_KEY,  
    SELECT REF_MS,     REF_REGIST,   STATE_QUERY, REF_KEY,            REF_CONF,   REF_WORKER, REF_CONFDATE, REF_MTRL,    REF_TMP1,            REF_TMP2,   REF_TMP3      FROM BN_REF_CODE
-- 打開游標
OPEN cursor1 --FETCH NEXT FROM cursor1 INTO @REF_M1,     @REF_MS,     @REF_REGIST,   @STATE_QUERY, @REF_KEY, 
FETCH NEXT FROM cursor1 INTO @REF_MS,     @REF_REGIST,   @STATE_QUERY, @REF_KEY,                              @REF_CONF,   @REF_WORKER, @REF_CONFDATE, @REF_MTRL,    @REF_TMP1,                              @REF_TMP2,   @REF_TMP3 
 WHILE @@FETCH_STATUS = 0     --0 FETCH 語句成功BEGIN-- 更新TIPTOP ERP 中的 table tc_imf_file(SLJ BN_REF_CODE)
PRINT 2
PRINT @@ERROR
    UPDATE OPENQUERY(ERP, 'SELECT * FROM tc_imf_file')       SET tc_imf020='C99',           tc_imf007 = @REF_REGIST,        --Registration Date Time           tc_imf008 = @STATE_QUERY,       --Query Status(I,U,D)           tc_imf010 = @REF_KEY,           --CodeMapping Key           tc_imf011 = @REF_CONF,          --Confirm Date time           tc_imf012 = @REF_WORKER,        --Worker           tc_imf013 = @REF_CONFDATE,      --Worker Date Time           tc_imf014 = @REF_MTRL,          --Mat.Identity           tc_imf015 = @REF_TMP1,          --Temporary Field           tc_imf016 = @REF_TMP2,          --Temporary Field           tc_imf017 = @REF_TMP3           --Temporary Field     WHERE tc_imf020 <> 'C99'--       AND tc_imf003 = @REF_M1           AND tc_imf004 = @REF_MS   --REF_MS 和 SC SERVER 回寫到 ERP 中的 SEC 4-6-4 Code 料號相同
PRINT 3
PRINT @@ERROR
--    FETCH NEXT FROM cursor1 INTO @REF_M1,     @REF_MS,     @REF_REGIST,   @STATE_QUERY, @REF_KEY, 
    FETCH NEXT FROM cursor1 INTO @REF_MS,     @REF_REGIST,   @STATE_QUERY, @REF_KEY,                                   @REF_CONF,   @REF_WORKER, @REF_CONFDATE, @REF_MTRL,    @REF_TMP1,                                  @REF_TMP2,   @REF_TMP3
PRINT 4END CLOSE cursor1           --關閉游標DEALLOCATE cursor1      --釋放游標RETURN[/code]