怎么在触发器里实现2个功能。1表不存在就创建 2 用变量名当表名

如何在触发器里实现2个功能。1表不存在就创建 2 用变量名当表名
 我主要想实现这样的功能。 有一个表用来存放最新的一条记录 比如叫info_last(自增id,列1,列2,列3)  另外存放历史数据的表 是每月一个,比如5月份表名就叫history201405,放六月份的记录 就叫history201406。 历史表结构同info_last表。

 我想在往info_last表里插入记录的时候,写个触发器,自动往当前月的历史表里同时插入一条数据。
我有大概的思路,就是触发器的时候 先检查当前历史表存在否 不存在 就创建。 另外就是创建表的时候 要根据当前时间确定表名,因为没有写过触发器,所以不太会写。 请哪位大仙指教一下 给个例子。

谢谢。
感觉是要用到动态sql。百度了下没有找到正确的能编译不报错的写法。 所以发帖求助下。

------解决方案--------------------

一、触发器——我不会。

二、遇到过类似的业务需求。
单表解决就好了。
日期作为聚集索引,其他若干条件作为非聚集索引。
这样在查询日期跨度大的时候,写SQL比较舒坦。
如果坚持用多表的形式,查询的日期跨度大,SQL语句得写死人。
------解决方案--------------------


create trigger tr_name 
on info_last
for insert
as
begin
declare @tbname varchar(20)
set @tbname='history'+replace(convert(varchar(5),getdate(),120),'-','')
--判断表是否存在

if object_id(@tbname) is not null
begin
declare @str varchar(2000)
set @str='insert '+'history'+replace(convert(varchar(5),getdate(),120),'-','')+
' select * from info_last'
exec @str
end 

else begin

declare @str varchar(2000)
set @str='create table '+'history'+replace(convert(varchar(5),getdate(),120),'-','')+
'(id int identity(1,1),列1 varchar(20),列2 varchar(20),列3 varchar(20));
insert '+'history'+replace(convert(varchar(5),getdate(),120),'-','')
+' select * from info_last'
exec @str
end
end
go
类似这样,其它的就看你了