百度搜的是
“写一个触发器,防止修改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 求详细程序

解决方案 »

  1.   


    如果是架构级别的修改限制,LZ可参考DDL触发器http://msdn.microsoft.com/zh-cn/library/ms190989(v=sql.90).aspxcreate trigger DDL_Event
    ON DATABASE FOR alter table
    as 
    ...
      

  2.   

    CREATE TABLE TB
    (
    [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