Share via


實作 DDL 觸發程序

本主題提供資訊以協助您建立 DDL 觸發程式、修改 DDL 觸發程式並停用或卸除 DDL 觸發程式。

建立 DDL 觸發程序

您可以使用 DDL 觸發程序的 Transact-SQL CREATE TRIGGER 陳述式來建立 DDL 觸發程序。

建立 DDL 觸發程序

卸除 DDL 觸發程序

重要事項重要事項

從觸發程序傳回結果集的功能將會在 SQL Server 的未來版本中移除。傳回結果集的觸發程序可能會導致非專用的應用程式發生非預期的行為。請在新的開發工作中避免從觸發程序傳回結果集,並計畫修改目前如此運作的應用程式。若要避免在 SQL Server 2008 中從觸發程序傳回結果集,請將 disallow results from triggers 選項設為 1。在未來版本的 SQL Server 中,這個選項的預設值將會是 1。

[!附註]

伺服器範圍的 DDL 觸發程序會出現在 SQL Server Management Studio 物件總管中的 [觸發程序] 資料夾。此資料夾是位於 [伺服器物件] 資料夾下。資料庫範圍的 DDL 觸發程序則是出現在 [資料庫觸發程序] 資料夾。此資料夾是位於對應資料庫的 [可程式性] 資料夾下。

修改 DDL 觸發程序

如果您必須修改 DDL 觸發程序的定義,您可以卸除並重新建立觸發程序,或是在單一步驟中重新定義現有的觸發程序。

如果您變更 DDL 觸發程序所參考的物件名稱,就必須修改觸發程序使其文字反映新名稱。因此,在改變物件名稱時,首先要檢視此物件的相依性以判斷是否有相關的觸發程序受到影響。

您也可以將觸發程序的定義修改為加密的形態。

修改觸發程序

檢視觸發程序的相依性

停用和卸除 DDL 觸發程序

不再需要 DDL 觸發程序時,可以將它停用或刪除。

停用 DDL 觸發程序不會將它卸除。該觸發程序仍然會以物件形式存在於目前的資料庫中。不過,只要編寫它的任何 Transact-SQL 陳述式在執行時,觸發程序就不會引發。已停用的 DDL 觸發程序可重新啟用。啟用 DDL 觸發程序會讓它以原先建立時相同的方式引發。建立 DDL 觸發程序時,預設是啟用的。

刪除 DDL 觸發程序時,會從目前的資料庫卸除。DDL 觸發程序所參考的任何物件或資料都不會受到影響。

停用 DDL 觸發程序

啟用 DDL 觸發程序

刪除 DDL 觸發程序