当前位置: 代码迷 >> Sql Server >> sql update 触发器解决方案
  详细解决方案

sql update 触发器解决方案

热度:94   发布时间:2016-04-24 09:48:21.0
sql update 触发器
看图,有三个字字段

帮忙写一个触发器,当字段UserName 更新的时候 如果这个段里有“tandol” 字符的时候,禁止更新,
用触发器怎么写??
------解决思路----------------------
CREATE TRIGGER TGR_TABLENAME_UPDATE
ON [表名]
INSTEAD OF UPDATE
AS
BEGIN
IF EXISTS(SELECT 1 FROM INSERTED WHERE UserName LIKE'%tandol%')
RETURN
UPDATE A
SET UserName=B.UserName,UsePwd=B.UsePwd
FROM [表名] A
INNER JOIN INSERTED B ON A.id=B.id
END
试下
------解决思路----------------------
只是字段值的检查没必要用到触发器,直接在建表语句中加个约束好了
CREATE TABLE ... (
    ...
    UserName nvarchar(50) CHECK( UserName <> N'tandol' )
)

------解决思路----------------------
UserName nvarchar(50) CHECK( UserName NOT LIKE N'%tandol%' )
------解决思路----------------------

create trigger 触发器名
on dbo.H_Hy
for update as
if exists(select username  from inserted where username ='tandol')
begin
print '不允许插入tandol'
rollback transaction
end

  相关解决方案