1. 程式人生 > >SQL儲存過程 (時間段,迴圈,事務)

SQL儲存過程 (時間段,迴圈,事務)

USE [SSIS_ExtractData]
GO
/****** Object: StoredProcedure [dbo].[sp_AntifakeAnalysis] Script Date: 05/05/2017 16:01:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:    Yaojl
-- Create date: <Create Date,,2017-03-16>
-- Description:    <Description,,掃碼首次多次分析>
-- =============================================
ALTER PROCEDURE [dbo].[sp_AntifakeAnalysis]
AS 
BEGIN
BEGIN TRY
BEGIN TRAN
IF EXISTS ( SELECT ID
FROM dbo.Rep_AntifakeAnalysis ) 
BEGIN
TRUNCATE TABLE dbo.Rep_AntifakeAnalysis
END
--往前推6個月
DECLARE @temp DATETIME = CONVERT(DATETIME, CONVERT(VARCHAR(7), DATEADD(MONTH, -5, GETDATE()), 120) + '-01');
DECLARE @first INT;
DECLARE @repeat INT;
DECLARE @total INT;
WHILE @temp <=getdate()
BEGIN

---全行業
SELECT @first = COUNT(FFAntiFakeCode)
FROM CRM_AntiFakeQRec
WHERE FSystime >= @temp
AND FSystime < DATEADD(MONTH, 1, @temp)
AND FsearchNum = 1

SELECT @repeat = COUNT(FFAntiFakeCode)
FROM CRM_AntiFakeQRec
WHERE FSystime >= @temp
AND FSystime < DATEADD(MONTH, 1, @temp)
AND FsearchNum > 1

SET @total = @first + @repeat;


INSERT INTO dbo.Rep_AntifakeAnalysis
( DataNum ,
FirstNum ,
RepeatNum ,
TotalNum
)
VALUES ( 
--CONVERT(varchar(7), @temp, 111) , -- DataNum - nvarchar(50)
Datename(month,@temp)+'月',
@first , -- FirstNum - int
@repeat , -- RepearNum - int
@total -- TotalNum - int
)

------分行業

-- --建立臨時表
-- DECLARE @tradeID INT;
--if not object_id('Tempdb..#A') is null
-- drop table #A

--Create table #A([TradeID] nvarchar(100))
--Insert #A SELECT TradeID FROM dbo.CRM_AntiFakeQRec GROUP BY TradeID
--WHILE EXISTS(SELECT TradeID FROM #A)
--BEGIN
--SET ROWCOUNT 1
--SELECT @tradeID=TradeID FROM #A
--SET ROWCOUNT 0
--DELETE FROM #A WHERE [email protected]
--PRINT @tradeID

-- SELECT @first = COUNT(FFAntiFakeCode)
-- FROM CRM_AntiFakeQRec
-- WHERE FSystime >= @temp
-- AND FSystime < DATEADD(MONTH, 1, @temp)
-- AND FsearchNum = 1 AND [email protected]

-- SELECT @repeat = COUNT(FFAntiFakeCode)
-- FROM CRM_AntiFakeQRec
-- WHERE FSystime >= @temp
-- AND FSystime < DATEADD(MONTH, 1, @temp)
-- AND FsearchNum > 1 AND [email protected]

-- SET @total = @first + @repeat;


-- INSERT INTO dbo.Rep_AntifakeAnalysis
-- ( DataNum ,
-- FirstNum ,
-- RepeatNum ,
-- TotalNum,
-- TradeID
-- )
-- VALUES ( CONVERT(varchar(7), @temp, 111) , -- DataNum - nvarchar(50)
-- @first , -- FirstNum - int
-- @repeat , -- RepearNum - int
-- @total, -- TotalNum - int
-- @tradeID
-- )

-- END

SET @temp = DATEADD(MONTH, 1, @temp)
END

COMMIT TRAN
END TRY

BEGIN CATCH 
IF XACT_STATE() = -1 
BEGIN
ROLLBACK TRAN;
END
PRINT '更新失敗';
END CATCH 
END

相關推薦

SQL儲存過程 時間段迴圈事務

USE [SSIS_ExtractData] GO /****** Object: StoredProcedure [dbo].[sp_AntifakeAnalysis] Script Date: 05/05/2017 16:01:52 ******/ SET ANS

SQL儲存過程呼叫標量值函式儲存過程呼叫儲存過程

一、存 儲過程呼叫標量值函式 先建一個標量值函式,如 CREATE FUNCTION [dbo].[F_Num] ( @a nvarchar(50) ) RETURNS nvarchar(50) AS BEGIN declare @m nvarchar(50) selec

資料庫-儲存過程概念、優缺點、分類

(1)概念:     ① 儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集。經編譯後儲存在資料庫 中。     ② 儲存過程是資料庫中的一個重要物件,使用者通過指定儲存

SQL增刪改查迴圈觸發器儲存過程以及sql語法

                                      可以直接貼上程式碼使用 --建立資料庫命令 create database j1216 on ( name=j1216, filename='E:\shuju\j1216\j1216.mdf', s

sql server建立儲存過程有參無參有輸出

student表已經有了,“建立”在中間,測試在最下面! select * from student; sid sname sex age tel s001 豐登兒 男 35 13527542451 s002 班克爾

大資料之scala --- 安裝scala簡單語法介紹條件表示式輸入和輸出迴圈函式過程lazy 異常陣列

一、安裝和執行Scala解釋程式 --------------------------------------------- 1.下載scala-2.11.7.msi 2.管理員執行--安裝 3.進入scala/bin,找到scala.bat,管理員執行,進入scala命

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式和過程第四部分物件表函式result_cache子句

  建立一個物件表函式有三個步驟: 1. 定義記錄結構為物件型別 2. 定義集合 3. 定義一個函式來展示如何從PL/SQL上下文向SQL上下文返回集合   1. 建立基本的SQL使用者自定義型別(UDT) 注意:發現竟然不能使用distinct關

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式和過程第三部分並行查詢及管道函式

  1. PARALLEL_ENABLE子句(啟用並行查詢以提高效能) 首次接觸,學習一下: PARALLEL_ENABLE lets you designate a function to support parallel query capabilities. This

SQL儲存過程函式

儲存過程和函式的區別: 儲存過程可以沒有返回值,函式必須有返回值; // 語法 CREATE PROCEDURE 儲存過程名(引數列表) BEGIN 儲存過程體; END 引數模式 IN , OUT

MySQL儲存過程中的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL的儲存過程/函式的使用區別退出儲存過程方法

  學無止境 部落格園   首頁   新隨筆   聯絡   訂閱  管理 隨筆-1968  評論-103  文章-4&

MySQL儲存過程格式變數引數流程控制...

儲存過程 其實就是mysql語句組成的指令碼,也就是資料庫中儲存的一系列SQL命令的集合。 可以使用變數,條件判斷,流程控制等 優點 提高效能 減輕網路負擔 可以防止對錶的直接訪問 避免重複編寫SQL操作

關於sql server 在儲存過程中建立臨時表並往臨時表中插入資料時出現亂碼的問題

  此前在客戶一個繁體系統的sql  server中執行儲存過程的時候出現亂碼,經查發現建立臨時表後,往臨時表中插入資料時得到的資料是亂碼的,所以檢視建立表的sql指令碼,經查需要將變數型別設定為  

Navicat for SQL使用注意設定預設字符集外來鍵儲存不了

最近用mysql+Navicat for sql開發專案時遇到了以下問題: 1.預設建立的資料庫,字符集編碼為:latin1 -- cp1252 West European      在資料庫中儲存中文時會出現亂碼錯誤 2.用Navicat給資料庫新增外來鍵約束時,儲存

mysql 5.0儲存過程包括語法符號

ADDTIME (date2 ,time_interval ) //將time_interval加到date2 CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //轉換時區 CURRENT_DATE (  ) //當前日期 CURRENT_TIME (  ) //當前時間 CURR

MySQL定時任務event儲存過程定時刪除指定時間前90天指定表的資料

<span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定時任務event</span> 由

sql儲存過程語句拼接使用遊標

DECLARE @paramNameCh  NVARCHAR(50) DECLARE    @paramFoid  NVARCHAR(50) SET @paramNameCh = '張三,李四,' SET @paramFoid = '441112197702157913,1

SQL計算兩個時間段的差精確到秒可用於倒計時

declare @day int declare @hour int declare @min int declare @sec int declare @alls int set @alls=datediff(s,'2015-05-01 23:23:59',GETDATE

mybatis呼叫mysql儲存過程返回引數單結果集多結果集

一、接收一個返回值 使用Map接收返回引數,output引數放在傳入的param中 建立表 DROP TABLE IF EXISTS `demo`; CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMEN

ObjectDataSource配合存儲過程采用數據集的使用刪除可以解決但是編輯出錯好像它的方法也無法解決

database true base fault 來源 window ble red rom 原文發布時間為:2008-08-01 —— 來源於本人的百度文章 [由搬家工具導入]ObjectDataSource是比较有

rtmp向IR601移植過程無功能步驟只有移植步驟

安裝 crypto usr 默認 flag arch librtmp AR www 1.main.c中添加頭文件: #include "rtmp_sys.h" #include "log.h" #include "rtmp.h" 2.功能代碼編寫 3.添加頭文件地址 交