Trigger trong sql là gì

Trigger trong Squốc lộ Server là những stored procedure quan trọng đặc biệt được thực thi auto nhằm phản hồi với các đối tượng người tiêu dùng cửa hàng dữ liệu, cửa hàng dữ liệu và những sự kiện máy chủ. SQL Server cung cấp tía nhiều loại trigger:

Trigger tài liệu ngôn từ định nghĩa (Trigger DDL) kích hoạt khi xẩy ra các câu lệnh CREATE, ALTER cùng DROP..Trigger singin (Trigger Logon) kích hoạt Lúc xảy ra những sự khiếu nại LOGON.Quý khách hàng sẽ xem: Trigger sql là gì

Tạo trigger trong Squốc lộ Server

Trong phần này, các bạn sẽ mày mò giải pháp sử dụng câu lệnh CREATE TRIGGER trong SQL Server nhằm tạo ra một trigger bắt đầu.

Bạn đang xem: Trigger trong sql là gì

Giới thiệu về câu lệnh CREATE TRIGGER trong Squốc lộ Server

Câu lệnh CREATE TRIGGER có thể chấp nhận được chúng ta chế tác một trigger new sẽ được kích hoạt auto bất cứ bao giờ một sự kiện nhỏng INSERT, DELETE hoặc UPDATE xảy ra đối với một bảng.

Sau đây minch họa cú pháp của câu lệnh CREATE TRIGGER:

CREATE TRIGGER trigger_nameON table_nameAFTER ,,ASsql_statementsTrong cú pháp này:

schema_name là tên gọi của lược đồ mà trigger nằm trong. Tên lược thiết bị là tùy chọn.trigger_name là tên gọi do người tiêu dùng hướng đẫn đến trigger.table_name là bảng sẽ áp dụng trigger.Sự khiếu nại kích hoạt trigger được liệt kê vào câu lệnh AFTER. Sự kiện này rất có thể là INSERT, UPDATE hoặc DELETE. Một trigger có thể kích hoạt với cùng một hoặc các sự kiện xảy ra trong bảng.Tùy chọn NOT FOR REPLICATION thông tư SQL Server không được kích hoạt trigger Lúc sửa thay đổi tài liệu được tiến hành nlỗi một trong những phần của quá trình xào nấu.sql_statements là một trong hoặc nhiều câu lệnh Transact-SQL được áp dụng để tiến hành những hành động sau khi một sự kiện xẩy ra.

Các bảng ảo mang lại trigger: INSERTED cùng DELETED

Squốc lộ Server cung cấp nhị bảng ảo đặc biệt quan trọng mang lại trigger là bảng INSERTED cùng DELETED. Squốc lộ Server thực hiện những bảng này nhằm tích lũy dữ liệu của bản ghi vẫn sửa thay đổi trước với sau thời điểm sự kiện xảy ra.

Bảng tiếp sau đây cho biết câu chữ của bảng INSERTED cùng DELETED trước và sau mỗi sự kiện:

Sự kiện Bảng INSERTED cất Bảng DELETED cất
INSERT Các bản ghi đã làm được insert Trống
UPDATE Các bạn dạng ghi sau khi được update Các bản ghi trước lúc được update
DELETE Trống Các bạn dạng ghi đã có delete

Hãy coi một trong những ví dụ tạo trigger trong SQL Server. Chúng tôi sẽ áp dụng bảng production.products vào cơ sở dữ liệu chủng loại BikeStores để minch họa.


*

Ví dụ tạo nên bảng nhằm ghi nhật ký kết gắng đổi

Câu lệnh tiếp sau đây tạo ra một bảng mang tên production.product_audits nhằm ghi biết tin lúc 1 sự kiện INSERT hoặc DELETE xảy ra so với bảng production.products:

CREATE TABLE production.product_audits( change_id INT IDENTITY PRIMARY KEY, product_id INT NOT NULL, product_name VARCHAR(255) NOT NULL, brand_id INT NOT NULL, category_id INT NOT NULL, model_year SMALLINT NOT NULL, list_price DEC(10,2) NOT NULL, updated_at DATETIME NOT NULL, operation CHAR(3) NOT NULL, CHECK(operation = "INS" or operation="DEL"));Bảng production.product_audits bao gồm tất cả các cột từ bảng production.products. Dường như, nó được bổ sung thêm 1 vài ba cột để khắc ghi hồ hết đổi khác ví dụ updated_at, operation với change_id.

Ví dụ chế tác trigger DML vào Squốc lộ Server

Đầu tiên, để sinh sản một trigger mới, chúng ta chỉ định tên của trigger cùng lược thứ mà lại trigger nằm trong sau đây mệnh đề CREATE TRIGGER nhỏng sau:

CREATE TRIGGER production.trg_product_auditTiếp theo, các bạn chỉ định và hướng dẫn thương hiệu của bảng vào mệnh đề ON, trigger sẽ kích hoạt lúc xảy ra sự kiện nằm trong bảng này:

ON production.productsSau đó, chúng ta liệt kê một hoặc nhiều sự kiện vẫn kích hoạt trigger vào mệnh đề AFTER:

AFTER INSERT, DELETEPhần thân của trigger bước đầu bằng từ khóa AS:

ASBEGINSau kia, bên trong thân của trigger, chúng ta thiết lập SET NOCOUNT ON nhằm ngăn ngừa thông tin con số phiên bản ghi bị ảnh hưởng bất kể lúc nào trigger được kích hoạt.

SET NOCOUNT ON;Trigger đang INSERT một bản ghi vào bảng production.product_audits bất cứ lúc nào một bản ghi được cnhát vào hoặc xóa sổ bảng production.products. Dữ liệu nhằm cyếu vào bảng production.product_audits được cung ứng từ bảng INSERTED cùng DELETED thông qua toán thù tử UNION ALL nhỏng sau:

INSERT INTO production.product_audits( product_id, product_name, brand_id, category_id, model_year, list_price, updated_at, operation)SELECT i.product_id, product_name, brand_id, category_id, model_year, i.list_price, GETDATE(), "INS"FROM inserted AS iUNION ALLSELECT d.product_id, product_name, brand_id, category_id, model_year, d.list_price, getdate(), "DEL"FROM deleted AS d;Sau đây câu lệnh chế tác trigger hoàn chỉnh:

CREATE TRIGGER production.trg_product_auditON production.productsAFTER INSERT, DELETEASBEGIN SET NOCOUNT ON; INSERT INTO production.product_audits( product_id, product_name, brand_id, category_id, model_year, list_price, updated_at, operation ) SELECT i.product_id, product_name, brand_id, category_id, model_year, i.list_price, GETDATE(), "INS" FROM inserted i UNION ALL SELECT d.product_id, product_name, brand_id, category_id, model_year, d.list_price, GETDATE(), "DEL" FROM deleted d;ENDCuối thuộc, bạn tiến hành câu lệnh trên nhằm chế tác trigger. Lúc trigger được sản xuất, chúng ta có thể tìm thấy nó vào thư mục Triggers của bảng nlỗi trong hình sau:


*

Kiểm tra hoạt động của trigger vào Squốc lộ Server

Câu lệnh sau đây cyếu một bạn dạng ghi mới vào bảng production.products:

INSERT INTO production.products( product_name, brand_id, category_id, model_year, list_price)VALUES ( "Test product", 1, 1, 2018, 599);Vì sự kiện INSERT này, trigger production.trg_product_audit đã có được kích hoạt nằm trong bảng production.products với cyếu một bạn dạng ghi vào bảng production.product_audits.

Hãy coi câu chữ của bảng production.product_audits:

SELECT * FROM production.product_audits;Đây là đầu ra:


*

Câu lệnh sau xóa một phiên bản ghi ngoài bảng production.products:

DELETE FROM production.productsWHERE product_id = 322;Đúng nhỏng dự đoán thù, trigger đã có được kích hoạt cùng chèn bạn dạng ghi đã xóa vào bảng production.product_audits:

SELECT * FROM production.product_audits;Hình ảnh dưới đây cho thấy đầu ra:


*

Trong khuyên bảo này, các bạn sẽ học cách chế tác một kích hoạt trong Squốc lộ Server nhằm đáp ứng nhu cầu với cùng một hoặc các sự khiếu nại nlỗi cyếu cùng xóa.

Trigger INSTEAD OF trong Squốc lộ Server

Trong phần này, bạn sẽ tìm hiểu biện pháp áp dụng trigger INSTEAD OF trong SQL Server để ckém tài liệu vào bảng thông qua view.

Trigger INSTEAD OF là gì?

Trigger INSTEAD OF là 1 trong trigger có thể chấp nhận được các bạn quăng quật sang một câu lệnh INSERT, DELETE hoặc UPDATE một bảng hoặc một view với xúc tiến câu lệnh khác được định nghĩa vào trigger. Các thao tác chèn, xóa hoặc cập nhật thực tiễn hoàn toàn không xẩy ra.

Nói biện pháp khác, trigger INSTEAD OF bỏ sang một câu lệnh DML cùng thực hiện những câu lệnh khác được tư tưởng vào trigger.

Cú pháp trigger INSTEAD OF vào Squốc lộ Server

Dưới đây minch họa cú pháp về kiểu cách chế tạo trigger INSTEAD OF:

CREATE TRIGGER trigger_nameON table_name INSTEAD OF ASsql_statementsTrong cú pháp này:

Trước hết, hướng đẫn thương hiệu của trigger cùng lược đồ gia dụng (tùy chọn) nhưng trigger ở trong về sau mệnh đề CREATE TRIGGER.Thđọng nhì, chỉ định thương hiệu của bảng hoặc view link với trigger.Thđọng tía, xác định một sự khiếu nại nhằm kích hoạt trigger INSTEAD OF như INSERT, DELETE hoặc UPDATE. Trigger hoàn toàn có thể được kích hoạt với một hoặc những sự khiếu nại.Thứ đọng tư, quan niệm phần thân của trigger sau từ bỏ khóa AS. Phần thân của trigger có thể gồm một hoặc nhiều câu lệnh Transact-SQL.

ví dụ như về trigger INSTEAD OF vào Squốc lộ Server

Một ví dụ điển hình của Việc thực hiện trigger INSTEAD OF là ghi đtrần thao tác cyếu, cập nhật hoặc xóa trên view.

Giả sử, một áp dụng cần ckém những thương hiệu bắt đầu vào bảng production.brands. Tuy nhiên, những chữ tín mới nên được lưu trữ trong một bảng không giống được Call là production.brand_approvals nhằm phê chuyên chú trước khi chèn vào bảng production.brands.

Để triển khai điều này, bạn chế tác một view có tên là production.vw_brands mang lại ứng dụng nhằm ckém những uy tín new. Nếu các thương hiệu được chèn vào view, một trigger INSTEAD OF sẽ tiến hành kích hoạt nhằm cyếu các uy tín vào bảng production.brand_approvals.

Bức Ảnh tiếp sau đây minc họa quá trình:


*

Sơ đồ này sẽ không hiển thị thương hiệu lược vật dụng của tất cả các đối tượng đại lý tài liệu vày mục đích đơn giản dễ dàng.

Câu lệnh sau đây tạo một bảng bắt đầu có tên production.brand_approvals để lưu trữ những uy tín vẫn chờ được phê duyệt:

CREATE TABLE production.brand_approvals( brand_id INT IDENTITY PRIMARY KEY, brand_name VARCHAR(255) NOT NULL);Câu lệnh sau đây tạo ra một view new tên là production.vw_brands phụ thuộc vào bảng production.brands cùng production.brand_approvals:

CREATE VIEW production.vw_brands ASSELECT brand_name, "Approved" approval_statusFROM production.brandsUNIONSELECT brand_name, "Pending Approval" approval_statusFROM production.brand_approvals;Khi một bạn dạng ghi được cnhát vào view production.vw_brands, chúng ta yêu cầu gửi nó tới bảng production.brand_approvals trải qua trigger INSTEAD OF như sau:

CREATE TRIGGER production.trg_vw_brands ON production.vw_brandsINSTEAD OF INSERTASBEGIN SET NOCOUNT ON; INSERT INTO production.brand_approvals ( brand_name ) SELECT i.brand_name FROM inserted i WHERE i.brand_name NOT IN ( SELECT brand_name FROM production.brands );ENDTrigger ckém thương hiệu bắt đầu vào bảng production.brand_approvals giả dụ thương hiệu không tồn tại vào bảng production.brands.

Bây giờ bọn họ hãy cnhát một uy tín new vào view production.vw_brands để thấy cthị trấn gì xẩy ra nhé:

INSERT INTO production.vw_brands(brand_name)VALUES("Eddy Merckx");Câu lệnh INSERT này sẽ kích hoạt trigger INSTEAD OF nhằm cnhát một bản ghi mới vào bảng production.brand_approvals.

Nếu bạn truy vấn vấn dữ liệu từ view production.vw_brands, các bạn sẽ thấy một bản ghi bắt đầu xuất hiện:

SELECT brand_name, approval_statusFROM production.vw_brands;
Câu lệnh sau đây cho biết nội dung của bảng production.brand_approvals:

SELECT *FROM production.brand_approvals;
Trong phần này, chúng ta đang mày mò về trigger INSTEAD OF trong SQL Server cùng phương pháp chế tạo trigger INSTEAD OF nhằm chèn tài liệu vào bảng trải qua view.

Trigger DDL vào SQL Server

Trong phần này, các bạn sẽ tò mò giải pháp thực hiện trigger ngữ điệu tư tưởng dữ liệu (Data Definition Language - DDL) của Squốc lộ Server nhằm theo dõi và quan sát những đổi khác được triển khai so với các đối tượng người dùng các đại lý tài liệu.

Giới thiệu về trigger DDL trong Squốc lộ Server

Trigger DDL của Squốc lộ Server đánh giá các sự kiện sever hoặc cơ sở dữ liệu hơn là các sửa đổi dữ liệu bảng. Những sự kiện này được tạo nên bởi các câu lệnh Transact-Squốc lộ thường xuyên ban đầu với cùng 1 Một trong những từ khóa sau CREATE, ALTER, DROP.., GRANT, DENY, REVOKE hoặc UPDATE STATISTICS.

Ví dụ: bạn có thể viết một trigger DDL nhằm ghi nhật cam kết bất kể bao giờ người dùng thực hiện câu lệnh CREATE TABLE hoặc ALTER TABLE.

Trigger DDL có ích trong những trường phù hợp sau:

Ghi lại những đổi khác vào lược thiết bị cơ sở tài liệu.Ngăn ngăn một số thay đổi rõ ràng so với lược đồ vật các đại lý tài liệu.Phản ứng với cùng một thay đổi trong lược đồ gia dụng cửa hàng tài liệu.

Phần sau trình bày cú pháp tạo ra trigger DDL:

CREATE TRIGGER trigger_nameON ALL SERVERFOR event_type AS sql_statement

trigger_name

Chỉ định thương hiệu trình kích hoạt bởi vì người tiêu dùng tư tưởng sau tự khóa CREATE TRIGGER. Lưu ý rằng bạn không hẳn chỉ định lược đồ vật (schema) cho một trigger DDL bởi vì nó không liên quan cho table hoặc view cửa hàng tài liệu thực tế.

DATABASE | ALL SERVER

Sử dụng DATABASE nếu trình kích hoạt bình luận những sự kiện trong phạm vi cơ sở dữ liệu hoặc ALL SERVER trường hợp trình kích hoạt đánh giá những sự khiếu nại vào phạm vi sever.

Xem thêm: " Xe Đò Tiếng Anh Là Gì ? Nghĩa Của Từ Xe Đò Trong Tiếng Anh

ddl_trigger_option

event_type | event_group

Các event_type chỉ ra rằng một sự khiếu nại DDL kích hoạt trigger nlỗi CREATE_TABLE, ALTER_TABLE, vv.

event_group là một trong team những sự khiếu nại event_type ví dụ như DDL_TABLE_EVENTS.

Trigger rất có thể đăng ký một hoặc các sự kiện hoặc nhóm sự khiếu nại.

lấy ví dụ như về tạo thành trigger DDL trong SQL Server

Giả sử bạn có nhu cầu thâu tóm tất cả những sửa thay đổi được thực hiện đối với chỉ mục đại lý tài liệu nhằm bạn có thể theo dõi và quan sát xuất sắc hơn công suất của dòng sản phẩm chủ các đại lý dữ liệu liên quan tới các thay đổi chỉ mục này.

Trước tiên, tạo thành một bảng bắt đầu mang tên index_logs để ghi những đổi khác chỉ mục:

CREATE TABLE index_logs ( log_id INT IDENTITY PRIMARY KEY, event_data XML NOT NULL, changed_by SYSNAME NOT NULL);GOTiếp theo, tạo nên một trigger DDL nhằm quan sát và theo dõi những đổi khác chỉ mục với cnhát tài liệu sự kiện vào bảng index_logs:

CREATE TRIGGER trg_index_changesON DATABASEFOR CREATE_INDEX, ALTER_INDEX, DROP_INDEXASBEGIN SET NOCOUNT ON; INSERT INTO index_logs ( event_data, changed_by ) VALUES ( EVENTDATA(), USER );END;GOTrong phần thân của trigger, Shop chúng tôi đã áp dụng hàm EVENTDATA() trả về ban bố về những sự khiếu nại máy chủ hoặc các đại lý dữ liệu. Hàm này chỉ khả dụng bên trong DDL hoặc trình kích hoạt singin.

Sau kia, chế tác chỉ mục mang đến cột first_name với last_name của bảng sales.customers:

CREATE NONCLUSTERED INDEX nidx_fnameON sales.customers(first_name);GOCREATE NONCLUSTERED INDEX nidx_lnameON sales.customers(last_name);GOSau kia, truy vấn dữ liệu từ bảng index_changes nhằm chất vấn coi sự kiện tạo nên chỉ mục dành được trình kích hoạt khắc ghi đúng cách tốt không:

SELECT *FROM index_logs;Đây là đầu ra:


Trong phần này, chúng ta sẽ tìm hiểu cách tạo trigger DDL vào Squốc lộ Server bình luận một hoặc nhiều sự khiếu nại DDL.

Tắt trigger trong Squốc lộ Server

Trong phần này, các bạn sẽ tò mò giải pháp sử dụng câu lệnh DISABLE TRIGGER vào Squốc lộ Server để tắt trigger.

Giới thiệu lệnh DISABLE TRIGGER vào SQL Server

Đôi khi, do mục tiêu hạn chế và khắc phục sự núm hoặc phục sinh dữ liệu, bạn cũng có thể ý muốn tắt tạm thời trigger. Để làm cho vấn đề đó, bạn thực hiện câu lệnh DISABLE TRIGGER:

DISABLE TRIGGER ON Trong cú pháp này:

trước hết, hãy hướng đẫn thương hiệu của lược đồ dùng chứa trigger với tên của trigger mà bạn muốn tắt sau lệnh DISABLE TRIGGER.Thứ đọng hai, hướng đẫn thương hiệu bảng hoặc view nhưng trigger được liên kết nếu trigger là trigger DML. Sử dụng DATABASE nếu trigger tất cả phạm vi các đại lý dữ liệu DDL hoặc SERVER ví như trigger bao gồm phạm vi máy chủ DDL.

lấy ví dụ như về lệnh DISABLE TRIGGER vào SQL Server

Câu lệnh sau tạo nên một bảng new mang tên sales.members để minch họa:

CREATE TABLE sales.members ( member_id INT IDENTITY PRIMARY KEY, customer_id INT NOT NULL, member_level CHAR(10) NOT NULL);Câu lệnh sau chế tạo một trigger được kích hoạt bất cứ bao giờ một sản phẩm bắt đầu được cnhát vào bảng sales.members. Với mục đích minc họa, trigger chỉ trả về một thông báo dễ dàng.

CREATE TRIGGER sales.trg_members_insertON sales.membersAFTER INSERTASBEGIN PRINT "A new member has been inserted";END;Câu lệnh sau sẽ ckém một sản phẩm mới vào bảng sales.members:

INSERT INTO sales.members(customer_id, member_level)VALUES(1,"Silver");Do sự kiện INSERT này, trigger đã có được kích hoạt cùng in ra thông báo sau:

A new member has been insertedĐể tắt trigger sales.trg_members_insert, bạn áp dụng câu lệnh DISABLE TRIGGER nlỗi sau:

DISABLE TRIGGER sales.trg_members_insert ON sales.members;Bây giờ đồng hồ nếu bạn cnhát một hàng mới vào bảng sales.members, trigger sẽ không còn được kích hoạt.

INSERT INTO sales.members(customer_id, member_level)VALUES(2,"Gold");Nó tức là trình kích hoạt đã bị vô hiệu hóa.

Lưu ý rằng trigger vẫn còn đó trên bảng. Nếu các bạn coi trigger vào SQL Server Management Studio (SSMS), các bạn sẽ nhận biết biểu tượng chữ thập đỏ bên trên tên trigger bị vô hiệu hóa hóa:

Tắt toàn bộ trigger của bảng trong SQL Server

Để tắt toàn bộ những trigger của bảng, các bạn sử dụng câu lệnh sau:

DISABLE TRIGGER ALL ON table_name;Trong câu lệnh này, bạn chỉ cần hướng đẫn tên của bảng nhằm vô hiệu hóa toàn bộ những trigger trực thuộc về bảng kia.

Câu lệnh sau tạo ra một trigger bắt đầu ở bảng sales.members được kích hoạt sau sự kiện xóa:

CREATE TRIGGER sales.trg_members_deleteON sales.membersAFTER DELETEASBEGIN PRINT "A new thành viên has been deleted";END;Để tắt toàn bộ các trigger trong bảng sales.members, các bạn sử dụng câu lệnh sau:

DISABLE TRIGGER ALL ON sales.members;Hình ảnh dưới đây cho biết tâm trạng của toàn bộ các trigger thuộc bảng sales.members:


Tắt toàn bộ những trigger của cơ sở dữ liệu vào SQL Server

Để tắt tất cả các trigger của cơ sở tài liệu hiện thời, bạn áp dụng câu lệnh sau:

DISABLE TRIGGER ALL ON DATABASE;

Bật trigger trong SQL Server

Trong phần này, bạn sẽ tìm hiểu giải pháp áp dụng câu lệnh ENABLE TRIGGER trong Squốc lộ Server để nhảy trigger.

Giới thiệu về câu lệnh ENABLE TRIGGER vào SQL Server

Câu lệnh ENABLE TRIGGER chất nhận được chúng ta bật trigger để nó hoàn toàn có thể được kích hoạt bất kể lúc nào một sự kiện xẩy ra.

Sau đây minch họa cú pháp của câu lệnh ENABLE TRIGGER:

ENABLE TRIGGER ON Trong cú pháp này:

Đầu tiên, chỉ định thương hiệu của trigger mà bạn muốn nhảy. Theo tùy chọn, bạn cũng có thể hướng dẫn và chỉ định tên của lược trang bị đựng trigger.Thứ đọng nhị, hướng đẫn bảng chứa trigger trường hợp nó là trigger DML. Sử dụng DATABASE nếu trigger là trigger có phạm vi cơ sở tài liệu DDL hoặc ALL SERVER giả dụ trigger là trigger bao gồm phạm vi máy chủ DDL.

lấy ví dụ về lệnh ENABLE TRIGGER trong SQL Server

Chúng tôi đang áp dụng bảng sales.members được sinh sản vào phần DISABLE TRIGGER để minc họa.

Để nhảy trigger sales.sales.trg_members_insert, chúng ta sử dụng câu lệnh sau:

ENABLE TRIGGER sales.trg_members_insertON sales.members;Sau Lúc được nhảy, bạn cũng có thể thấy trạng thái của trigger thông qua Squốc lộ Server Management Studio nlỗi được hiển thị vào hình sau:


Bật toàn bộ trigger của bảng vào Squốc lộ Server

Để nhảy toàn bộ các trigger của một bảng, các bạn sử dụng câu lệnh sau:

ENABLE TRIGGER ALL ON table_name;Trong cú pháp này, chúng ta chỉ việc chỉ định và hướng dẫn tên của bảng mà lại bạn muốn nhảy tất cả các trigger được link.

Ví dụ: để bật tất cả những trigger của bảng sales.members, các bạn thực hiện câu lệnh sau:

ENABLE TRIGGER ALL ON sales.members;Tấm hình sau đây cho biết trạng thái của toàn bộ những trigger của bảng sales.members:


Bật toàn bộ trigger của cơ sở dữ liệu vào SQL Server

Để nhảy tất cả trigger của cơ sở dữ liệu bây chừ, các bạn áp dụng câu lệnh sau:

ENABLE TRIGGER ALL ON DATABASE;

4 cách coi code của trigger trong Squốc lộ Server

Trong phần này, các bạn sẽ tìm hiểu 4 bí quyết coi code của trigger trong SQL Server.

Xem code của trigger bằng phương pháp truy hỏi vấn trường đoản cú view hệ thống

Quý khách hàng hoàn toàn có thể xem code của trigger bằng cách truy hỏi vấn dữ liệu dựa trên view sys.sql_modules:

SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID("sales.trg_members_delete");Đây là đầu ra:


Trong tầm nã vấn này, các bạn truyền tên của trigger mà bạn có nhu cầu xem code cho hàm OBJECT_ID() trong mệnh đề WHERE.

Xem code của trigger bằng phương pháp sử dụng hàm OBJECT_DEFINITION

Bạn hoàn toàn có thể coi code của trigger bằng cách thực hiện hàm OBJECT_DEFINITION nlỗi sau:

SELECT OBJECT_DEFINITION ( OBJECT_ID( "sales.trg_members_delete" ) ) AS trigger_definition;Trong tầm nã vấn này, các bạn truyền tên trigger mang lại hàm OBJECT_ID để lấy ID của trigger. Sau kia, chúng ta áp dụng hàm OBJECT_DEFINITION() để đưa code của trigger dựa vào ID của chính nó.

Xem code của trigger bằng cách thực hiện stored procedure sp_helptext

Cách đơn giản tuyệt nhất để mang code của trigger là áp dụng stored procedure sp_helptext như sau:

EXEC sp_helptext "sales.trg_members_delete" ;Stored procedure sp_helptext trả về code được áp dụng nhằm tạo nên một đối tượng người dùng, vào ngôi trường đúng theo này là trigger.

Xem code của trigger bởi SSMS

Để xem code của trigger DML:

Trước hết, trong Object Explorer, kết nối cùng với đại lý dữ liệu.Thứ đọng nhì, dịch rời tới bảng chứa trigger nhưng bạn muốn xem code.Thđọng tía, mở rộng menu Triggers, click chuột đề nghị vào trigger bạn có nhu cầu xem code, tiếp nối bnóng Modify. Code có mang trigger xuất hiện vào hành lang cửa số truy tìm vấn.

Liệt kê tất cả trigger trong Squốc lộ Server

Để liệt kê toàn bộ trigger vào Squốc lộ Server, bạn tróc nã vấn tài liệu từ view sys.triggers như sau:

SELECT name, is_instead_of_triggerFROM sys.triggers WHERE type = "TR";Hình ảnh tiếp sau đây cho biết đầu ra:


Xóa trigger trong Squốc lộ Server

Trong phần này, các bạn sẽ mày mò biện pháp thực hiện câu lệnh DROPhường TRIGGER trong SQL Server nhằm xóa các trigger hiện tại gồm.

Giới ttín hiệu lệnh DROP TRIGGER trong SQL Server

Câu lệnh DROP.. TRIGGER trong SQL Server xóa một hoặc các trigger ngoài các đại lý tài liệu. Phần sau minh họa cú pháp của câu lệnh DROPhường TRIGGER để xóa trigger DML:

DROP TRIGGER trigger_name ;Trong cú pháp này:

IF EXISTS chỉ xóa trigger lúc nó đã trường thọ.schema_name là tên của lược trang bị đựng trigger DML.trigger_name là tên của trigger nhưng mà bạn muốn xóa.

Nếu bạn có nhu cầu xóa những trigger và một dịp, bạn cần phân tách các trigger bởi lốt phẩy.

Xem thêm: Phân Tích Về Đối Thủ Cạnh Tranh Tiềm Ẩn Là Gì ? Đối Thủ Cạnh Tranh Là Gì

Để xóa một hoặc những trigger DDL, chúng ta áp dụng cú pháp sau của câu lệnh DROP TRIGGER:

DROPhường. TRIGGER trigger_name ON ALL SERVER ;Trong cú pháp này:

Để xóa trigger sự kiện LOGON, các bạn áp dụng cú pháp sau:

DROP TRIGGER trigger_name ON ALL SERVER;Lưu ý rằng khi bạn xóa một bảng, tất cả trigger được links với bảng cũng tự động bị xóa.

Ví dụ về lệnh DROP TRIGGER trong SQL Server

Xóa trigger DML vào Squốc lộ ServerCâu lệnh sau vẫn xóa một trigger DML có tên sales.trg_member_insert:

DROP TRIGGER IF EXISTS sales.trg_member_insert;Xóa trigger DDL trong Squốc lộ ServerCâu lệnh sau đang xóa trigger DDL mang tên trg_index_changes:

DROP TRIGGER IF EXISTS trg_index_changes;

Lời kết

Trong trả lời này, bạn vẫn tìm hiểu về:

SQL Server cung cấp bố một số loại trigger: Trigger tài liệu ngữ điệu thao tác làm việc (trigger DML), Trigger tài liệu ngôn ngữ khái niệm (trigger DDL), Trigger singin (trigger Logon).Sử dụng câu lệnh CREATE TRIGGER vào SQL Server nhằm tạo một trigger mới.Sử dụng câu lệnh DISABLE TRIGGER để tắt trigger vào Squốc lộ Server.Sử dụng câu lệnh ENABLE TRIGGER để bật trigger trong Squốc lộ Server.Sử dụng câu lệnh DROPhường TRIGGER để xóa trigger trong SQL Server. SQL Server Chuim mục: Định Nghĩa

Chuyên mục: Kiến Thức