--你可以在 栏目表 ClassTable 上写触发器,根据 栏目代码 的变化,重建视图来实现
--当然,这个触发器能成功的关键,要求你的 MSG_栏目代码的表 先处理好--假设生成的视图名为: v_Class
create trigger tr_re_createview_ClassTable on ClassTable
for insert,update,delete
as
if @@rowcount<1 return--生成视图语句
declare @s varchar(8000)
set @s=''
select @s=@s+' union all select * from [MSG_'+cast(classid as varchar)+']'
from ClassTable
if @@rowcount=0 return
set @s=stuff(@s,1,10,'')--创建视图
if objectproperty(object_id('v_Class'),'isview') is not null
exec('alter view v_Class as '+@s)
else
exec('create view v_Class as '+@s)