首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 没有学过SQL触发器,今天突然想到一个有关问题,不知道是不是用触发器的

2012-02-17 
|M| 没有学过SQL触发器,今天突然想到一个问题,不知道是不是用触发器的。比如我有表tbidname当我用insertint

|M| 没有学过SQL触发器,今天突然想到一个问题,不知道是不是用触发器的。
比如我有表
tb  
id       name

当我用
insert   into   tb   ([name])   values   ( '张三 ')
这样插入一条数据的时候
Sql自动判断name如果是‘张三’那就换成‘李四’
也就是结果为
id       name
1         李四

谢谢

[解决办法]
up
[解决办法]
在数据库里加个触发器
[解决办法]
--建立測試環境
Create Table tb
(idInt,
nameNvarchar(10))
GO
--建立觸發器
Create Trigger TR_tb On tb
Instead of Insert
As
Begin
Insert tb
Select
id,
(Case name When N '张三 ' Then N '李四 ' Else name End) As name
From
Inserted
End
GO
--測試
insert into tb Select 1, N '张三 '
Union All Select 2, N '王五 '

Select * From tb
GO
--刪除測試環境
Drop Table tb
--結果
/*
idname
1李四
2王五
*/
[解决办法]
假设表名为ACREATE TRIGGER tgrname ON [dbo].[A] FOR INSERT ,UPDATEASdeclare @id intdeclare @name nvarchar(20)select @id= id,@name = name from insertedif @name= '张三 ' begin update A set name = '李四 ' where id = @idend
[解决办法]
可以在插入之前替换,也可以用触发器
[解决办法]
如楼上所言
[解决办法]
仁者见仁智者见智的问题,图方便就在程序里控制

这样的问题我是不太喜欢用触发器的,一般执行相关数据库操作的时候如果该表

和其他表有关联用到,其它方面的需求目前还比较少遇到,执行数据库操作的时候

触发一个事件而已,而这个事件是sql语句集
[解决办法]

[解决办法]
不用也可以,用也没错.看你喜欢那种方式了.
[解决办法]
如果对于初发起还不是太熟的话,建议在成立里面判断。

因为如果触发器使用不当的话,会对其他的操作带来影响,而且不容易找到错误的原因。

而且触发器也不太容易管理。
[解决办法]
这个问题不必用触发器啊,直接在程序里面判断就行了啊!
杀鸡用牛刀啦!
[解决办法]
可以在插入之前替换,也可以用触发器


同意……
[解决办法]
触发器就和普通sql语句一样 建议用触发器
[解决办法]
直接使用存储过程了啊
先判断再添加!
不建议使用触发器!
触发器有的时候会对别的操作有干扰

热点排行