Показать сообщение отдельно
Старый 10.01.2013, 17:33   #1
ЕНЫ
Эксперт
Аватар для ЕНЫ
OFFLINE
Регистрация: 05.12.2011
Возраст: 31
Сообщений: 863
Благодарностей:
449 всего
Мнения: + 3909
Репутация: 1345
Отправить сообщение для ЕНЫ с помощью Skype™

SQL запрос Trigger ( Авто награда TimePlay )Для 2.2.3.2


- =============================================
- Автор: Hanry Roslaw Saputra
- Дата создания: 20-12-2012
- Описание: AutoReward наличной TimePlaying
- Тип: запуск по SQL Server 2005 - 2008
- =============================================

Запуск SQL запросов




// RF_WORLD или же RF_WORLD_NOVUS
Код:
USE [RF_WORLD]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dbo].[AutoCash]
   ON  [dbo].[tbl_general]
   FOR UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
	
	DECLARE @TimePlay int;
	DECLARE @TSerial int;
	DECLARE @DCK bit;
	
	DECLARE @BSerial int;
	DECLARE @BAccount varchar(17);
	DECLARE @BDCK bit;
	
	DECLARE @CSerial int;
	DECLARE @CId varchar(17);
	DECLARE @Cash int;
	DECLARE @Bonus int;
	
	DECLARE @TimeBonus int;
	DECLARE @Reward int;
	
	if update(TotalPlayMin)
	begin
		SELECT @TSerial = Serial, @DCK = DCK, @TimePlay = TotalPlayMin From Inserted
		if (@TimePlay > 0 And @DCK = 0)
		begin
			SELECT @BSerial = Serial, @BAccount = Account, @BDCK = DCK From tbl_base Where Serial = @TSerial
			if (@BSerial > 0 And @BDCK = 0)
			begin
				SET @TimeBonus = (@TimePlay*10)
				SELECT @CSerial = serial, @CId = id, @Cash = Cash, @Bonus = Bonus From BILLING.dbo.tbl_UserStatus Where id = @BAccount
				if (@TimeBonus > @Bonus And @CSerial > 0)
				begin
					SET @Reward = (@TimeBonus-@Bonus)
					Update BILLING.dbo.tbl_UserStatus
					SET Cash = (@Cash+@Reward), Bonus = @TimeBonus
					Where id = @CId
				end
			end
		end
	end
END
GO


// Не забудьте добавить один столбец таблицы на BILLING tbl_UserStatus

Код:
Use [BILLING]

ALTER TABLE tbl_UserStatus
ADD Bonus int
 
Ответить с цитированием
Сказали спасибо:
mua4857 (10.01.2013)