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