我需要更新记录状态(字段名称IsActivate - 它保存记录的状态),但需要首先检查数据是否在另一个表中使用(意思是表具有关系与另一个表)。如果我想要更新的数据在另一个表中使用,则不允许更新,否则应更新它。如何使用MS SQL 2005创建触发器以实现此方法?或者,可以使用MS SQL 2005实现此方法SP?怎么样?如何在MS SQL 2005中创建触发器
回答
如果我是你,我会避免使用触发器。你可以在SP中轻松做到这一点。
您的更新记录应该做这样的事情SP: -
- 我假设你要检查的值传递的参数如更新SP,可能
@value
- 使用
@value
在SELECT
statment在类似SELECT @result = count(1) FROM tableToCheck WHERE columnToCheck = @value
- 如果
@result
= 0,继续前进,火现有UPDATE
声明 - 如果
@resul
吨<> 0,做任何你需要在你的业务场景做这样也许更新的输出参数,以表明您更新失败
如果你想知道上述逻辑的语法,你可以看看如果您使用的是SQL Server,则使用MSDN;如果使用的是MySQL,则使用MySQL docs;如果使用的是Oracle,则使用Oracle help。如果任何其他引擎,只是谷歌“CREATE PROCEDURE <engineName>
”
然后,如果您有任何具体的语法问题,请随时张贴他们在这里与您的代码,我们将很乐意帮助你与他们!
嗨InSane,如果在触发器中使用它,有什么缺点,只是好奇...... :) – user335160 2010-10-19 08:41:12
@ user335160 - 调试触发器通常是一个很大的痛苦,因为触发器的固有特性...他们几乎总是最后一个人看起来和大多数人忘记他们!对我而言,从长远来看,可能是他们最大的缺点 – InSane 2010-10-19 08:44:28
但是表现如何?它比SP慢得多?顺便说一句,表格与5张表格有关系,所以我必须创建给定语句5次来检查值是否存在? – user335160 2010-10-19 08:50:13
- 1. 如何在SQL Server 2005中更新触发器之前创建
- 2. 如何正确实施MS SQL 2005/2008中的触发器?
- 3. Sql 2005触发器
- 4. 触发器在SQL Server 2005
- 5. SQL Server 2005复制触发器 - 如何?
- 6. 如何在T-SQL 2005的删除之前触发触发器?
- 7. 如何创建这种SQL触发器?
- 8. Sql创建触发器
- 9. 删除触发器SQL 2005
- 10. 在SQL Server中创建触发器
- 11. SQL Server 2005 SQLAgent触发器
- 12. 如何创建触发器?
- 13. PL/SQL创建触发器
- 14. 如何在sqlite3中创建触发器?
- 15. 如何在sharepoint中创建触发器?
- 16. 更改Sql Server 2005中的触发器
- 17. SQL Server 2005中触发器的问题
- 18. 如何在SQL Server 2005中使用触发器进行更新
- 19. SQL Server 2005中触发
- 20. 如何在AS400中创建由SQL触发器触发的数据队列?
- 21. 如何在SQL Server中为每行创建触发器
- 22. 如何在SQL Server 2012中创建登录触发器
- 23. 在SQL Server表上创建触发器
- 24. SQL服务器:DLL创建触发器
- 25. SQL触发器创建外键行
- 26. SQL Server 2005 - 删除表触发器?
- 27. 在SQL Server在每次创建表创建触发器2008 R2
- 28. 当使用sql server 2005时触发器
- 29. SQL Server 2005加密触发器
- 30. 在MS SQL Server 2005中创建Java存储过程
你有什么困难?你不知道创建触发器的语法?你不知道如何编写select语句?请更具体一些。你到目前为止尝试过什么? – 2010-10-19 08:26:36
我想他是问他是否可以在触发器中测试另一张桌子。是的,你可以使用几乎任何SQL。 – Rup 2010-10-19 08:28:11
是的,这是我第一次创造TRIGGER,任何人都可以帮助我,我该如何实现我想做的事情? – user335160 2010-10-19 08:35:23