none
請問各位大大我有個訂單的AP畫面 我是否可以用SQL 觸發程序來防止使用者修改欄位的資料 RRS feed

  • 問題

  • 請問個位大大:我有個套裝軟體  後端使用MSSQL 2008 因為是套裝軟體  所以無法更動  現在公司對於其中一個欄位(單價) 想要鎖定不讓使用者更改  請問我是否可以使用觸發程序來防止使用者更改該欄位值? 請問該如何撰寫觸發程序

    
    
    
    謝謝各位大大
    • 已編輯 MichaelTsai10 2019年11月26日 上午 07:49 忘了寫謝謝
    2019年11月26日 上午 07:48

所有回覆

  • You can revoke update permission of that column from app user.
    2019年11月26日 下午 07:55
  • 您可以限制套裝軟體的使用者或群組對SQL Server 2008的權限, 例如禁止修改
    2019年11月27日 上午 12:29
  • 嘗試以下列T-SQL模擬你的狀況,稍微改一下應該可以符合你的需求。

    create table a (ca1 int, ca2 int,cf int);
    go
    
    create trigger tri_deny_update_price
    on a
    for update
    as
       if (select d.cf from deleted d) <> (select i.cf from inserted i) 
           raiserror(N'禁止更新欄位xxx', 11, 1);  
           
    go
    
    insert into a values (100,200,300);
    go
    
    select * from a;
    go
    
    update a
    set cf = cf * 1.5;
    go
    
    select * from a;
    go
    


    | SQL PASS Taiwan Page | SQL PASS Taiwan Group

    | My Blog

    2019年11月27日 上午 02:08
    版主