我需要更新記錄狀態(字段名稱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. 如何在SQL中創建觸發器?
- 3. 如何在sql中創建觸發器
- 4. 如何正確實施MS SQL 2005/2008中的觸發器?
- 5. Sql 2005觸發器
- 6. 創建無法在SQL Server 2005中禁用的觸發器
- 7. 觸發器在SQL Server 2005
- 8. 在PHP/MS SQL 2008中創建一個觸發器/事件
- 9. SQL Server 2012.觸發器。如何在創建表時自動創建觸發器
- 10. SQL Server 2005複製觸發器 - 如何?
- 11. 如何在T-SQL 2005的刪除之前觸發觸發器?
- 12. SQL Server 2005 - 觸發器沒有觸發
- 13. 刪除觸發器SQL 2005
- 14. 如何在PostgreSql中創建觸發器?
- 15. 如何在oracle中創建觸發器?
- 16. 如何創建這種SQL觸發器?
- 17. SQL Server 2005 SQLAgent觸發器
- 18. SQL創建觸發器
- 19. Sql創建觸發器
- 20. 在SQL Server中創建觸發器
- 21. SQL觸發器創建
- 22. 如何在遠程SQL Server 2005/2008數據庫上創建觸發器?
- 23. 如何創建觸發器?
- 24. PL/SQL創建觸發器
- 25. 如何在informix中創建觸發器?
- 26. 如何在sqlite3中創建觸發器?
- 27. 如何在sharepoint中創建觸發器?
- 28. 如何在mysql中創建觸發器?
- 29. MS SQL 2008 - 觸發器
- 30. 更改Sql Server 2005中的觸發器
你有什麼困難?你不知道創建觸發器的語法?你不知道如何編寫select語句?請更具體一些。你到目前爲止嘗試過什麼? – 2010-10-19 08:26:36
我想他是問他是否可以在觸發器中測試另一張桌子。是的,你可以使用幾乎任何SQL。 – Rup 2010-10-19 08:28:11
是的,這是我第一次創造TRIGGER,任何人都可以幫助我,我該如何實現我想做的事情? – user335160 2010-10-19 08:35:23