怎么说的和题目不一样呢?动态sql创建触发器示例:
--为指定表名添加删除触发器CREATE procedure usp_createtrigger (@tablename varchar(100))
as
begin
declare @sql varchar(4000)
set @sql =
'/*************************************'
+char(13)+' 名称:td_'+@tablename
+char(13)+' 功能描述:确认数据删除控制'
+char(13)+' 创建人员: '
+char(13)+' 创建日期: '
+char(13)+'***************************************/'
+char(13)+'create trigger td_'+@tablename+' on [dbo].['+@tablename+'] '
+char(13)+'for delete '
+char(13)+'as'
+char(13)+'begin'
+char(13)+'if @@rowcount = 0 return '
+char(13)+'set nocount on'
+char(13)+'raiserror(''测试例子!'',16,1)'
+char(13)+'rollback transaction'
+char(13)+'return'
+char(13)+'end'
if not exists( select * from sysobjects where name like 'td_'+@tablename and xtype='tr')
exec (@sql)
end
--为指定表名添加删除触发器CREATE procedure usp_createtrigger (@tablename varchar(100))
as
begin
declare @sql varchar(4000)
set @sql =
'/*************************************'
+char(13)+' 名称:td_'+@tablename
+char(13)+' 功能描述:确认数据删除控制'
+char(13)+' 创建人员: '
+char(13)+' 创建日期: '
+char(13)+'***************************************/'
+char(13)+'create trigger td_'+@tablename+' on [dbo].['+@tablename+'] '
+char(13)+'for delete '
+char(13)+'as'
+char(13)+'begin'
+char(13)+'if @@rowcount = 0 return '
+char(13)+'set nocount on'
+char(13)+'raiserror(''测试例子!'',16,1)'
+char(13)+'rollback transaction'
+char(13)+'return'
+char(13)+'end'
if not exists( select * from sysobjects where name like 'td_'+@tablename and xtype='tr')
exec (@sql)
end
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货