百度搜的是
“写一个触发器,防止修改name 字段:
create trigger tr_update on 你的表
for update
as
if update(name) rollback tran
go--当允许修改name的时候,执行下面的语句关闭触发器
alter table 你的表 disable trigger tr_update--当不允许修改name的时候,执行下面的语句开启触发器
alter table 你的表 enable trigger tr_update
--同时对用户的权限做限制,只允许管理员有开启/关闭触发器的权限 ”
我用的sql2008 求详细程序
“写一个触发器,防止修改name 字段:
create trigger tr_update on 你的表
for update
as
if update(name) rollback tran
go--当允许修改name的时候,执行下面的语句关闭触发器
alter table 你的表 disable trigger tr_update--当不允许修改name的时候,执行下面的语句开启触发器
alter table 你的表 enable trigger tr_update
--同时对用户的权限做限制,只允许管理员有开启/关闭触发器的权限 ”
我用的sql2008 求详细程序
如果是架构级别的修改限制,LZ可参考DDL触发器http://msdn.microsoft.com/zh-cn/library/ms190989(v=sql.90).aspxcreate trigger DDL_Event
ON DATABASE FOR alter table
as
...
(
[name] VARCHAR(10)
)
INSERT INTO dbo.tb
SELECT '1'
GO--SQL: 不用在程序中编码,在数据库中执行即可;如果需要在程序中控件触发器的开启或关闭,执行sql语句即可(alter table...)
create trigger tr_update on TB
for update
as
if update([name]) rollback tran
goalter table TB ENABLE trigger tr_update
--alter table TB DISABLE trigger tr_update
go