CREATE PROCEDURE [dbo].[Local_CreateMoneyTable] @createtime datetime as set nocount on declare @year varchar(50) declare @month varchar(50) set @year = convert(varchar, datepart(yy,@createtime)) set @month = convert(varchar, datepart(mm,@createtime)) if OBJECT_ID( 'Money_Log_'+ @year+'_'+@month ) IS NULL begin declare @br varchar(1500) set @br='CREATE TABLE Money_Log_'+ @year+'_'+@month+ '( [log_id] [bigint] IDENTITY(1,1) NOT NULL, [log_type] [smallint] NOT NULL, [world_id] [int] NOT NULL, [auth_id] [uniqueidentifier] NOT NULL, [bcust_id] [nvarchar](50) NOT NULL, [character_id] [uniqueidentifier] NOT NULL, [character_name] [nvarchar](50) NOT NULL, [other_auth_id] [uniqueidentifier] NULL, [other_bcust_id] [nvarchar](50) NULL, [other_character_id] [uniqueidentifier] NULL, [other_character_name] [nvarchar](50) NULL, [before_money] [int] NOT NULL, [after_money] [int] NOT NULL, [change_money] [int] NOT NULL, [entry_date] [datetime] NOT NULL CONSTRAINT [DF_Money_Log_'+ @year+'_'+ @month+'_entry_date] DEFAULT (getdate()), )' exec(@br) ----- set @br='ALTER TABLE [dbo].[Money_Log_'+ @year+'_'+ @month+'] WITH NOCHECK ADD CONSTRAINT [PK_log_id_Money_Log_'+ @year+'_'+ @month+'] PRIMARY KEY CLUSTERED ( [log_id] ASC ) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_world_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [world_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_entry_date_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [entry_date] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_logtype_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [log_type] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_bcust_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [bcust_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_character_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [character_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_character_name_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [character_name] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_other_auth_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [other_auth_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_other_bcust_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [other_bcust_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_other_character_id_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [other_character_id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) ----- set @br='CREATE NONCLUSTERED INDEX [IX_other_character_name_Money_Log_'+ @year+'_'+ @month+'] ON [dbo].[Money_Log_'+ @year+'_'+ @month+'] ( [other_character_name] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]' exec(@br) end