2009-11-27 178 views
3

在MS SQL Server 2005中執行的腳本中,是否可以將觸發器從一個數據庫複製到另一個數據庫?將觸發從一個數據庫複製到另一個

我被要求爲我的項目正在使用的觸發器編寫測試腳本。我們的測試結構是創建一個只包含被測對象的空數據庫,然後在該數據庫上執行一個腳本,該腳本創建測試所需的所有其他對象,填充它們,運行所需的任何測試,將結果與預期結果進行比較,然後丟棄除了被測對象之外的所有東西。

我不能只創建一個空的數據庫,除了觸發器,因爲觸發器取決於幾個表。我的測試腳本當前在創建所有必需的表之後運行CREATE TRIGGER,但這不會執行,因爲測試腳本不允許包含被測對象。

建議的是,不是運行CREATE TRIGGER,而是以某種方式將腳本中該位置的觸發器從實時數據庫複製到測試數據庫。我有一個快速的谷歌,並沒有找到一個方法來做到這一點。因此,我的問題 - 這甚至是可能的,如果是這樣,我該怎麼做?

回答

2

,你可以讀取觸發器的文本與sp_helptext (triggername)

或者你也可以選擇文本到一個變量並執行:

declare @sql varchar(8000) 


select @sql = object_definition(object_id) 
from sys.triggers 
where name = 'testtrigger' 

EXEC @sql 
+0

謝謝,這是輝煌的。有了幾個USE和EXEC(@sql),這正是我想要的。 – Rawling 2009-11-27 10:27:41

+0

歡迎您:) – edosoft 2009-11-27 11:58:15

相關問題