我的触发器的意思是让一般不会高级操作的用户不能操作表数据,必须由我的程序来操作, create trigger test on table INSTEAD OF DELETE,INSERT,UPDATE as print '对不起,权限不够!操作未能执行.' 如果是这样的话那么任何UPDATE,DELETE,INSERT操作都不能在查询分析器或是企业管理器里执行(如果不改名或是删掉触发器) 这样就有个问题,我的程序所用的SQL用户也不能进行操作了 不知道明白我的意思没有
declare @loginame varchar(20) select @loginame=loginame from sysprocesses where spid=@@spid if @loginame<>'use1' and ... begin print '' roalback return end不过还是在前台控制好。
declare @loginame varchar(20) select @loginame=loginame from master..sysprocesses where spid=@@spid if @loginame<>'use1' and ... begin print '' roalback return end
create trigger test on Table For DELETE,INSERT,UPDATE as if( SYSTEM_USER<>'MyUser') begin print '对不起,权限不够!操作未能执行.' rollback return end
create trigger test on table
INSTEAD OF DELETE,INSERT,UPDATE
as
print '对不起,权限不够!操作未能执行.'
如果是这样的话那么任何UPDATE,DELETE,INSERT操作都不能在查询分析器或是企业管理器里执行(如果不改名或是删掉触发器)
这样就有个问题,我的程序所用的SQL用户也不能进行操作了
不知道明白我的意思没有
select @loginame=loginame from sysprocesses where spid=@@spid
if @loginame<>'use1' and ...
begin
print ''
roalback
return
end不过还是在前台控制好。
select @loginame=loginame from master..sysprocesses where spid=@@spid
if @loginame<>'use1' and ...
begin
print ''
roalback
return
end
For DELETE,INSERT,UPDATE
as
if( SYSTEM_USER<>'MyUser')
begin
print '对不起,权限不够!操作未能执行.'
rollback
return
end