/********************************************
lin_CheckLogTimeTable2
do check whether real time log table is exist or not
INPUT
@strDate varchar(16),
@nWorld int
OUTPUT
return
made by
young
date
2002-11-11
********************************************/
CREATE PROCEDURE [DBO].[lin_CheckLogTimeTable2]
(
@strDate varchar(16),
@nWorld int
)
AS
SET NOCOUNT ON
declare @table_name varchar(60)
declare @table2_name varchar(60)
declare @view_name varchar(60)
declare @sql varchar(2048)
-- check log_realtime
set @table_name = @strDate + 'log_realtime_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @table_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
set @sql = 'exec lin_MakeLogTable ''' + @table_name + ''''
exec (@sql)
end
-- check log_audit
set @table_name = @strDate + 'log_audit_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @table_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
set @sql = 'exec lin_MakeLogTable ''' + @table_name + ''''
exec (@sql)
end
-- check log_data ( store 0~12 hour log)
set @table_name = @strDate + 'log_data_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @table_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
set @sql = 'exec lin_MakeLogTable ''' + @table_name + ''''
exec (@sql)
end
-- check log_data2 ( store 12~24 hour log)
set @table2_name = @strDate + 'log_data2_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @table2_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
set @sql = 'exec lin_MakeLogTable ''' + @table2_name + ''''
exec (@sql)
end
-- check log_data0 ( view )
set @view_name = @strDate + 'log_data0_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @view_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
-- set @sql = 'exec lin_MakeLogTable ''' + @table_name + ''''
set @sql = 'CREATE VIEW dbo.' + @view_name + ' ( '
+ ' act_time, log_id, actor, actor_account, target, target_account, location_x, location_y, location_z, '
+ 'etc_str1, etc_str2, etc_str3, '
+ 'etc_num1, etc_num2, etc_num3, etc_num4, etc_num5, etc_num6, etc_num7, etc_num8, etc_num9, etc_num10, '
+ 'STR_actor, STR_actor_account, STR_target, STR_target_account, item_id '
+ ' ) AS '
+ ' SELECT act_time, log_id, actor, actor_account, target, target_account, location_x, location_y, location_z, '
+ ' etc_str1, etc_str2, etc_str3, '
+ ' etc_num1, etc_num2, etc_num3, etc_num4, etc_num5, etc_num6, etc_num7, etc_num8, etc_num9, etc_num10, '
+ ' STR_actor, STR_actor_account, STR_target, STR_target_account, item_id '
+ ' from ' + @table_name + ' (nolock) UNION ALL '
+ ' SELECT act_time, log_id, actor, actor_account, target, target_account, location_x, location_y, location_z, '
+ ' etc_str1, etc_str2, etc_str3, '
+ ' etc_num1, etc_num2, etc_num3, etc_num4, etc_num5, etc_num6, etc_num7, etc_num8, etc_num9, etc_num10, '
+ ' STR_actor, STR_actor_account, STR_target, STR_target_account, item_id '
+ ' from ' + @table2_name + ' (nolock) '
exec (@sql)
end
-- check chat
set @table_name = @strDate + 'log_chat_' + cast (@nWorld as varchar)
set @sql = 'select * from sysobjects (nolock) where name = '''+ @table_name + ''''
exec ( @sql)
if ( @@ROWCOUNT = 0)
begin
set @sql = 'exec lin_MakeChatLogTable ''' + @table_name + ''''
exec (@sql)
end
GO