sql service 2000はトリガーを構築する。

1207 ワード

具体的な考え方はこのようです。sqlservice 2000の中にinsert触発器を作りたいです。Aの表にデータを挿入する時、もう一つの表を作ります。この表は一日に一回建てられます。もしこの日に5つのデータを挿入するなら、全部同じ表の中にあります。08_09は月に日付をつけます!
use mas

if exists (select name from sysobjects where name='tri_tbl_smsendtask_insert' AND type = 'TR') drop trigger tri_tbl_smsendtask_insert

go

create trigger tri_tbl_smsendtask_insert

on tbl_smsendtask

for insert

as

begin



	declare @tabName varchar(200),@sql varchar(1000),@dd varchar(10) 



	if len(datename(dd,getdate()))=1	

	begin

	set @dd='0'+datename(dd,getdate())

	end



	select @tabName='tbl_smresult_'+datename(mm,getdate())+@dd

	if(object_id(@tabName,'U'))is null

	begin

	

	set @sql='CREATE table '+ @tabName+'(

		[id] [int] IDENTITY (1, 1) NOT NULL ,

		[Orgaddr] [varchar] (42) COLLATE Chinese_PRC_CI_AS NOT NULL ,

		[Destaddr] [varchar] (72) COLLATE Chinese_PRC_CI_AS NOT NULL ,

		[Sm_content] [varchar] (3200) COLLATE Chinese_PRC_CI_AS NULL ,

		[Sendtime] [datetime] NULL ,

		[Msg_status] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

		[Recv_status] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL 

	) ON [PRIMARY]

	 '

	end

	exec(@sql)

end