如果inserted和deleted中都有数据就是update操作,否则就是插入或者删除操作。
解决方案 »
- 求一句sql语句!!!
- 请教一个access的分页sql因排序导致分页效率奇慢,access版面人气太低就发这里来了。
- 查询两个表中另一个表中没有的字段语句如何写
- 关于数据库加密的未公开函数pwdencrypt及pwdcompare的迷惑!!请高手解决!
- 急!sql2000连接的怪问题
- 已超过连结逾时的设定 , 在作业完成之前超过逾时等待的时间 , 或是服务器未响应???
- exec sp_executesql
- 求一個存儲過程,在線等!
- 有Sql Server7.0下载吗?(要正式版的)
- Analysis servises 能够实现单纯的数据浏览么?(不需要对数据的统计分析) 还有相关的软件吗?
- 在哪里可以找到sp_password,sp_...这些东东?
- 请问大家;如何实现模糊查询?
deleted 为修改后数据
再配合for update,delete,insert来判断在什么时候起用触发器。
比如说对于同两条记录可以根据一个字段来删除也可以根据两个字段来删除你不可能知道delete from yourtable where id =5
和delete from yourtable where id =5 or 1=2 or 3=4 or 5=6 ...
你让触发器怎么区分?
CREATE TABLE spy(EventType NVARCHAR(30),Parameters INT,EventInfo NVARCHAR(255))GO
CREATE TRIGGER Trg_Spy ON testTABLE
FOR INSERT,DELETE,UPDATE
AS
DECLARE @tmpSQL NVARCHAR(300)
SET @tmpSQL= 'DBCC INPUTBUFFER('+CAST(@@SPID AS VARCHAR)+')'
INSERT INTO spy(eventType,Parameters,EventInfo)
EXEC (@tmpSQL)GO/*spy Table中存的就是影響該table記錄的語句,
這種方法應該會有一些隱患,譬如說EventInfo只能抓255個字符等等,
我沒仔細去研究....
曾經有一張帖子討論過這類問題,好像是不了了之了,(記不清了)
*/
dbcc inputbuffer(@@spid)得到的结果总是Language Event 0 dbcc inputbuffer(@@spid) 还是飘香兄高!