批处理表进行记录处理

 

DECLARE tnames_cursor CURSOR

FOR

   SELECT name

   FROM sys.tables where is_ms_shipped='0'

OPEN tnames_cursor

DECLARE @tablename sysname

--SET @tablename = 'authors'

FETCH NEXT FROM tnames_cursor INTO @tablename

WHILE (@@FETCH_STATUS <> -1)

BEGIN

   IF (@@FETCH_STATUS <> -2)

   BEGIN  

      SELECT @tablename = RTRIM(@tablename)

      EXEC (' select count(1),'''+@tablename+''' from syscolumns where [id]=object_id('''+@tablename+''') and [name]=''TBSJ1''' )

 

   END

   FETCH NEXT FROM tnames_cursor INTO @tablename

END

CLOSE tnames_cursor

DEALLOCATE tnames_cursor

 

 

/****** 陈挺 2011-02-14 *****/

 

/*火调修项目状态和处理时间的脚本*/

/*可重复执行*/

/*当认定书与以下文书同时存在时,则以一下文书为有效力的文书*/

 

DECLARE CURSOR1 CURSOR

FOR

   SELECT ITEMBH FROM XFJD_XMXX  WHERE ITEMTYPE ='H' AND DELETED =0 AND ITEMRESULT =0 and ItemStateTwo <>1--首先遍历火调任务

OPEN CURSOR1

DECLARE @ITEMBH VARCHAR(50),@DATETIME DATETIME

FETCH NEXT FROM CURSOR1 INTO @ITEMBH

WHILE (@@FETCH_STATUS <> -1)

BEGIN

   IF (@@FETCH_STATUS <> -2)

  

   BEGIN   

       SELECT @ITEMBH = RTRIM(@ITEMBH)

       SELECT @DATETIME=GETDATE()

      

      

       IF (SELECT  COUNT(*) FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3H04') AND STATE =5 AND ITEMBH =@ITEMBH)>0  --查找项目中是否存在案件移送

 

       BEGIN

         SELECT TOP 1  @DATETIME= APPTIME FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3H04') AND STATE =5 AND ITEMBH =@ITEMBH

         EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=2  WHERE ITEMBH='''+@ITEMBH+'''')

       END

      

       ELSE IF (SELECT  COUNT(*) FROM XFJD_FLWS  WHERE FLWSLB  IN  ('4X16') AND STATE =5 AND ITEMBH =@ITEMBH)>0 --查找项目中是否存在刑案审批

 

       BEGIN

       SELECT TOP 1  @DATETIME= APPTIME FROM XFJD_FLWS  WHERE FLWSLB  IN  ('4X16') AND STATE =5 AND ITEMBH =@ITEMBH

      EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=4  WHERE ITEMBH='''+@ITEMBH+'''')

      END

     

      ELSE IF (SELECT  COUNT(*) FROM XFJD_FJ   WHERE TYPENAME ='H804' AND ITEMBH = @ITEMBH)>0  --查找项目中是否存在行政处分的函

 

       BEGIN

       SELECT TOP 1  @DATETIME= INTIME  FROM XFJD_FJ   WHERE TYPENAME ='H804' AND ITEMBH = @ITEMBH

       EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=3  WHERE ITEMBH='''+@ITEMBH+'''')

       END

       

        

       ELSE IF(SELECT COUNT(*) FROM XFJD_FLWS A,XFJD_XMXX B WHERE A.FLWSLB ='4C01' AND A.STATE =5 AND A.ITEMBH =B.ITEMBH AND B.RELATIONITEMBH=@ITEMBH)>0  --查找项目中是否存在受案登记表

       BEGIN

       SELECT TOP 1  @DATETIME= APPTIME  FROM XFJD_FLWS A,XFJD_XMXX B   WHERE A.FLWSLB ='4C01' AND A.STATE =5 AND A.ITEMBH =B.ITEMBH AND B.RELATIONITEMBH=@ITEMBH

       EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=5  WHERE ITEMBH='''+@ITEMBH+'''')

       END

   END

   FETCH NEXT FROM CURSOR1 INTO @ITEMBH

END

CLOSE CURSOR1

DEALLOCATE CURSOR1

 

 

 

 

DECLARE CURSOR2 CURSOR

FOR

   SELECT ITEMBH FROM XFJD_XMXX  WHERE ITEMTYPE ='F' AND DELETED =0 AND ITEMRESULT =0 and ItemStateTwo <>1 --复核任务

OPEN CURSOR2

FETCH NEXT FROM CURSOR2 INTO @ITEMBH

WHILE (@@FETCH_STATUS <> -1)

BEGIN

   IF (@@FETCH_STATUS <> -2)

  

   BEGIN   

       SELECT @ITEMBH = RTRIM(@ITEMBH)

       SELECT @DATETIME=GETDATE()

      

      

       IF (SELECT  COUNT(*) FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3F07') AND STATE =5 AND ITEMBH =@ITEMBH)>0  --查找是否存在复核终止,需填写处理时间

       BEGIN

         SELECT TOP 1  @DATETIME= APPTIME FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3F07') AND STATE =5 AND ITEMBH =@ITEMBH

         EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=7 , CLTIME ='''+@DATETIME+''' WHERE ITEMBH='''+@ITEMBH+'''')

       END

      

       ELSE IF (SELECT  COUNT(*) FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3F04') AND STATE =5 AND ITEMBH =@ITEMBH)>0 --查找是否存在不予受理,需填写处理时间

       BEGIN

       SELECT TOP 1  @DATETIME= APPTIME FROM XFJD_FLWS  WHERE FLWSLB  IN  ('3F04') AND STATE =5 AND ITEMBH =@ITEMBH

      EXEC ('UPDATE XFJD_XMXX SET ITEMSTATETWO=6 , CLTIME ='''+@DATETIME+''' WHERE ITEMBH='''+@ITEMBH+'''')

      END

     

   END

   FETCH NEXT FROM CURSOR2 INTO @ITEMBH

END

CLOSE CURSOR2

DEALLOCATE CURSOR2

posted @ 2012-10-02 16:03  zxsr20  阅读(94)  评论(0)    收藏  举报