当前位置: 代码迷 >> SQL >> mssql procedure 功课 存储过程
  详细解决方案

mssql procedure 功课 存储过程

热度:559   发布时间:2016-05-05 14:47:47.0
mssql procedure 作业 存储过程

前些日子客户过来个需求,是要把以前所有DB里面记录用户消费coinlog的表做统一成一样的字段(以前由于DB很多LOG表很乱)。上个礼拜把设计书写好后,今天开始写存储过程。很久没有写存储过了,上午在网上做功课下午写,还好有公司前辈高手指导算是在下班前完成了。把写的存储过程的代表性的一个记录一下,以便以后温习只用。

?

作业内容:将某DB的原来coinLog表内的某些字段根据条件复制到新表中,每一天复制前一天产生的数据,具体procedure如下:

?

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- =============================================-- Author: Jiang	-- create Date: 2011/05/09-- Description: 邦楽フルプラスEZコインログ出力-- =============================================ALTER PROCEDURE [dbo].[CopyTo_CoinEventLog_FullpE]	ASBEGINBEGIN TRAN	SET NOCOUNT ON;	INSERT		CoinEventLog_FullpE	(		uid,	--ユーザーID		credit_coin,	--イベントコイン		rest_coin,		--残りコイン		event_cd,		--イベントコード		event_desc,		--イベント詳細記述		upd_nm,		--レコード更新者		upd_pg,		--レコード更新プログラム		upd_dt		--レコード更新時間	)	SELECT 		uid,		credit_coin,		rest_coin,		CASE 			WHEN [event_cd] = 'give' OR [event_cd] = 'change' THEN 'give'			WHEN [event_cd] = 'use' THEN 'use'			WHEN [event_cd] = 'lost' THEN 'lost'			WHEN [event_cd] = 'takeover' THEN 'takeover'			WHEN [event_cd] = 'campaign' THEN 'campaign'			ELSE ''	-- 'give','use','lost','takeover','change',campaign以外の値なら、''に設定する		END,		event_desc,		upd_nm,		upd_pg,		upd_dt	FROM 		fullp_e.dbo.CoinEventLog	--前日の1日分のコインログを抽出する	WHERE upd_dt >= CONVERT(varchar(10), getdate() - 1, 111)		and upd_dt < CONVERT(varchar(10), getdate(), 111)	IF @@error<>0		BEGIN			rollback tran			return		ENDCOMMIT TRANEND
  相关解决方案