IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'tb_record' AND type = 'U')
DROP table tb_record
gocreate table tb_record
(mytablename varchar(20),
information varchar(400),
controldate smalldatetime
)goIF EXISTS (SELECT name FROM sysobjects
WHERE name = 'create_trigger' AND type = 'P')
DROP PROCEDURE create_triggergocreate procedure create_trigger as
begin
declare @mytablename varchar(20),@infor_insert varchar(400),@infor_delete varchar(400),
@infor_update varchar(400) declare @sql varchar(1000)
declare fetch_mytablename cursor local scroll
for
select mytablename from mytablename
set @infor_insert='执行了插入操作'
set @infor_delete='执行了删除操作'
set @infor_update='执行了更新操作' if CURSOR_STATUS('local','fetch_mytablename')=-1 Open fetch_mytablename Fetch next from fetch_mytablename into @mytablename while @fetch_status=0
begin select @sql='create trigger '+@mytablename+'_insert on '+@mytablename+' for insert as
begin
insert into tb_record(mytablename,information,controldate)
values('+@mytablename+','+@infor_insert+','+''+left(convert(varchar(20),getdate(),120),10)+')'+
' end' exec @sql
fetch next from fetch_mytablename into @mytablename end close fetch_mytablename
deallocate fetch_mytablenameend命令能成功执行 但是 为什么tb_record中没有记录 是不是创建触发器没成功???怎么办 急急急!!!!!!!
WHERE name = 'tb_record' AND type = 'U')
DROP table tb_record
gocreate table tb_record
(mytablename varchar(20),
information varchar(400),
controldate smalldatetime
)goIF EXISTS (SELECT name FROM sysobjects
WHERE name = 'create_trigger' AND type = 'P')
DROP PROCEDURE create_triggergocreate procedure create_trigger as
begin
declare @mytablename varchar(20),@infor_insert varchar(400),@infor_delete varchar(400),
@infor_update varchar(400) declare @sql varchar(1000)
declare fetch_mytablename cursor local scroll
for
select mytablename from mytablename
set @infor_insert='执行了插入操作'
set @infor_delete='执行了删除操作'
set @infor_update='执行了更新操作' if CURSOR_STATUS('local','fetch_mytablename')=-1 Open fetch_mytablename Fetch next from fetch_mytablename into @mytablename while @fetch_status=0
begin select @sql='create trigger '+@mytablename+'_insert on '+@mytablename+' for insert as
begin
insert into tb_record(mytablename,information,controldate)
values('+@mytablename+','+@infor_insert+','+''+left(convert(varchar(20),getdate(),120),10)+')'+
' end' exec @sql
fetch next from fetch_mytablename into @mytablename end close fetch_mytablename
deallocate fetch_mytablenameend命令能成功执行 但是 为什么tb_record中没有记录 是不是创建触发器没成功???怎么办 急急急!!!!!!!
解决方案 »
- sqlserver安装
- 关于ISO-8859-1转化成UTF-8的问题急急急急!!!!!!救救我!!!!!在线等!!!!!
- 大家帮我看下完成这样的功能怎么写SQL语句
- 怎样创建一个可以返回结果集的存储过程?
- 可不可以将记录按这种顺序来排列?
- 关于SQL6.5的问题?????
- SQL 语句出错,除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效
- WinXP SP3上安装SQL Server 2005 失败的问题
- 在redhat7.0上安装sybase遇到问题了。
- SQL Server 2008登陆时服务器名称问题,求解
- 想了两天也没有想出好办法的SQL语句
- 能否提供一个存储过程,打印出所有用户表的表名/字段名/字段类型/说明的清单?
exec create_trigger 然后你可以查询你的触发器是否创建成功:
select * from sysobjects where type='tr' and parent_obj=object_id(N'tb_record')
select * from tb_scoreupdate tb_score set score=51
where student_no='20010201001' and course_no='c801'select * from tb_record
提示 称 'create trigger tb_book_update on tb_book for update as
begin
insert into tb_record(mytablename,information,controldate)
values('tb_book','执行了更新操作','2007-08-31') end' 不是有效的标识符。
??????????