Trigger là gì sql

Trigger trong SQL Server là các stored procedure quan trọng được xúc tiến tự động hóa nhằm đánh giá với những đối tượng đại lý dữ liệu, các đại lý dữ liệu và các sự kiện máy chủ. SQL Server hỗ trợ tía các loại trigger:

Trigger tài liệu ngữ điệu khái niệm (Trigger DDL) kích hoạt Lúc xẩy ra các câu lệnh CREATE, ALTER cùng DROPhường.Trigger singin (Trigger Logon) kích hoạt Khi xẩy ra những sự kiện LOGON.Quý Khách sẽ xem: Trigger sql là gì

Tạo trigger trong SQL Server

Trong phần này, các bạn sẽ khám phá giải pháp thực hiện câu lệnh CREATE TRIGGER trong SQL Server để tạo một trigger mới.

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

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

Câu lệnh CREATE TRIGGER chất nhận được bạn tạo ra một trigger new sẽ tiến hành kích hoạt tự động bất cứ lúc nào một sự kiện nhỏng INSERT, DELETE hoặc UPDATE xẩy ra đối với một bảng.

Sau phía trên minc 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 đồ gia dụng mà trigger nằm trong. Tên lược vật là tùy chọn.trigger_name là tên gọi vì chưng người dùng chỉ định mang đến trigger.table_name là bảng đang áp dụng trigger.Sự khiếu nại kích hoạt trigger được liệt kê trong câu lệnh AFTER. Sự khiếu nại này rất có thể là INSERT, UPDATE hoặc DELETE. Một trigger rất có thể kích hoạt với cùng một hoặc những sự khiếu nại xẩy ra trên bảng.Tùy chọn NOT FOR REPLICATION thông tư Squốc lộ Server không được kích hoạt trigger Lúc sửa thay đổi tài liệu được tiến hành nhỏng một phần của quy trình xào luộc.sql_statements là 1 hoặc những câu lệnh Transact-SQL được thực hiện nhằm thực hiện các hành vi sau khi một sự kiện xảy ra.

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

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

Bảng sau đây cho biết văn bản của bảng INSERTED cùng DELETED trước với sau từng sự kiện:

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

Hãy xem một số trong những ví dụ chế tác trigger trong Squốc lộ Server. Chúng tôi sẽ thực hiện bảng production.products trong đại lý tài liệu mẫu BikeStores nhằm minc họa.


*

Ví dụ chế tạo ra bảng để ghi nhật cam kết gắng đổi

Câu lệnh tiếp sau đây tạo ra một bảng có tên production.product_audits nhằm ghi đọc tin khi một sự khiếu nại 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 toàn bộ các cột từ bảng production.products. Ngoài ra, nó được bổ sung thêm 1 vài ba cột để đánh dấu đa số chuyển đổi ví dụ updated_at, operation và change_id.

Ví dụ tạo nên trigger DML trong SQL Server

Trước tiên, để tạo nên một trigger new, chúng ta hướng đẫn tên của trigger và lược thiết bị cơ mà trigger nằm trong sau này mệnh đề CREATE TRIGGER nhỏng sau:

CREATE TRIGGER production.trg_product_auditTiếp theo, chúng ta hướng đẫn tên của bảng trong mệnh đề ON, trigger sẽ kích hoạt khi xảy ra sự khiếu nại nằm trong bảng này:

ON production.productsSau đó, các bạn liệt kê một hoặc các sự kiện vẫn kích hoạt trigger trong mệnh đề AFTER:

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

ASBEGINSau đó, bên trong thân của trigger, bạn tùy chỉnh thiết lập SET NOCOUNT ON để ngăn chặn thông báo con số bạn dạng ghi bị tác động bất cứ bao giờ trigger được kích hoạt.

SET NOCOUNT ON;Trigger đã INSERT một phiên bản ghi vào bảng production.product_audits bất cứ lúc nào một bạn dạng ghi được ckém vào hoặc xóa sổ bảng production.products. Dữ liệu để cnhát vào bảng production.product_audits được hỗ trợ từ bỏ 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 phía trên câu lệnh tạo 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 cùng, các bạn tiến hành câu lệnh trên để chế tạo trigger. lúc trigger được tạo, chúng ta có thể kiếm 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 trong Squốc lộ Server

Câu lệnh sau đây cnhát một bạn dạng ghi bắt đầu 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 trên bảng production.products với ckém một bản ghi vào bảng production.product_audits.

Hãy coi nội dung 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 bạn dạng ghi ngoài bảng production.products:

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

SELECT * FROM production.product_audits;Tấm hình tiếp sau đây cho biết thêm đầu ra:


*

Trong giải đáp này, bạn đã học cách tạo ra một kích hoạt trong Squốc lộ Server để đáp ứng nhu cầu với cùng 1 hoặc các sự khiếu nại nlỗi ckém cùng xóa.

Trigger INSTEAD OF trong Squốc lộ Server

Trong phần này, bạn sẽ khám phá phương pháp sử dụng trigger INSTEAD OF trong SQL Server để cyếu tài liệu vào bảng trải qua view.

Trigger INSTEAD OF là gì?

Trigger INSTEAD OF là 1 trong những trigger chất nhận được bạn vứt sang 1 câu lệnh INSERT, DELETE hoặc UPDATE một bảng hoặc một view và triển khai câu lệnh khác được quan niệm trong trigger. Các thao tác cyếu, xóa hoặc update thực tiễn trọn vẹn ko xẩy ra.

Nói bí quyết khác, trigger INSTEAD OF quăng quật sang một câu lệnh DML cùng triển khai những câu lệnh khác được định nghĩa vào trigger.

Cú pháp trigger INSTEAD OF trong Squốc lộ Server

Dưới phía trên minch họa cú pháp về phong thái chế tạo trigger INSTEAD OF:

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

Trước hết, chỉ định thương hiệu của trigger với lược vật (tùy chọn) cơ mà trigger thuộc trong tương lai mệnh đề CREATE TRIGGER.Thđọng hai, chỉ định và hướng dẫn thương hiệu của bảng hoặc view link cùng với trigger.Thứ cha, khẳng đị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 cùng 1 hoặc các sự khiếu nại.Thứ tư, khái niệm phần thân của trigger sau trường đoản cú khóa AS. Phần thân của trigger rất có thể bao gồm một hoặc các câu lệnh Transact-SQL.

lấy ví dụ như về trigger INSTEAD OF trong Squốc lộ Server

Một ví dụ nổi bật của vấn đề thực hiện trigger INSTEAD OF là ghi đtrần làm việc cyếu, cập nhật hoặc xóa trên view.

Giả sử, một vận dụng cần ckém các uy tín bắt đầu vào bảng production.brands. Tuy nhiên, những uy tín mới cần được lưu trữ vào một bảng không giống được call là production.brand_approvals để phê chăm nom trước lúc cnhát vào bảng production.brands.

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

Hình ảnh sau đây minh họa vượt trình:


*

Sơ vật dụng này sẽ không hiển thị tên lược đồ gia dụng của toàn bộ các đối tượng người tiêu dùng cơ sở dữ liệu vị mục đích dễ dàng và đơn giản.

Câu lệnh tiếp sau đây tạo thành một bảng bắt đầu có tên production.brand_approvals nhằm lưu trữ các uy tín sẽ ngóng đượ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 thành một view mới thương hiệu là production.vw_brands phụ thuộc vào bảng production.brands và 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 ghi được cnhát vào view production.vw_brands, chúng ta yêu cầu đưa nó cho tới bảng production.brand_approvals thông qua trigger INSTEAD OF nhỏng 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 cyếu Brand Name new vào bảng production.brand_approvals giả dụ thương hiệu không sống thọ trong bảng production.brands.

Bây giờ chúng ta hãy chèn một thương hiệu new vào view production.vw_brands để thấy chuyệ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 cyếu một bạn dạng ghi mới vào bảng production.brand_approvals.

Nếu chúng ta truy hỏi vấn dữ liệu từ view production.vw_brands, bạn sẽ thấy một bạn dạng 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 thêm nội dung của bảng production.brand_approvals:

SELECT *FROM production.brand_approvals;
Trong phần này, bạn vẫn khám phá về trigger INSTEAD OF vào Squốc lộ Server cùng phương pháp chế tác trigger INSTEAD OF để chèn tài liệu vào bảng thông qua view.

Trigger DDL vào Squốc lộ Server

Trong phần này, bạn sẽ khám phá biện pháp thực hiện trigger ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL) của SQL Server nhằm theo dõi những chuyển đổi được thực hiện so với các đối tượng người dùng cơ sở tài liệu.

Giới thiệu về trigger DDL trong SQL Server

Trigger DDL của SQL Server ý kiến những sự khiếu nại máy chủ hoặc đại lý dữ liệu hơn là những sửa đổi tài liệu bảng. Những sự kiện này được tạo ra vày những câu lệnh Transact-SQL thường xuyên ban đầu với một giữa những tự khóa sau CREATE, ALTER, DROP., GRANT, DENY, REVOKE hoặc UPDATE STATISTICS.

Ví dụ: chúng ta cũng có thể viết một trigger DDL để ghi nhật ký bất kể lúc nào người tiêu dùng thực hiện câu lệnh CREATE TABLE hoặc ALTER TABLE.

Trigger DDL có lợi trong những ngôi trường thích hợp sau:

Ghi lại các thay đổi trong lược đồ vật các đại lý dữ liệu.Ngnạp năng lượng ngăn một số trong những biến hóa ví dụ so với lược vật dụng cửa hàng tài liệu.Phản ứng với cùng một thay đổi vào lược đồ dùng các đại lý tài liệu.

Phần sau trình diễn cú pháp tạo thành trigger DDL:

CREATE TRIGGER trigger_nameON DATABASE FOR event_group AS sql_statement

trigger_name

Chỉ định tên trình kích hoạt vì người dùng có mang sau trường đoản cú khóa CREATE TRIGGER. Lưu ý rằng chúng ta chưa hẳn chỉ định và hướng dẫn lược vật dụng (schema) cho một trigger DDL vì chưng nó không tương quan đến table hoặc view các đại lý dữ liệu thực tế.

DATABASE | ALL SERVER

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

Xem thêm: Chỉ Số Octan Là Gì - Nghĩa Của Từ Chỉ Số Octan Trong Tiếng Việt

ddl_trigger_option

event_type | event_group

Các event_type chỉ ra một sự kiện DDL kích hoạt trigger nlỗi CREATE_TABLE, ALTER_TABLE, vv.

event_group là 1 team các sự khiếu nại event_type ví dụ như DDL_TABLE_EVENTS.

Trigger rất có thể đăng ký một hoặc nhiều sự kiện hoặc đội sự kiện.

lấy ví dụ như về sinh sản trigger DDL vào Squốc lộ Server

Giả sử bạn muốn thâu tóm tất cả những sửa đổi được thực hiện đối với chỉ mục đại lý tài liệu để bạn có thể theo dõi và quan sát tốt hơn năng suất của sản phẩm chủ các đại lý dữ liệu tương quan đến những biến đổi chỉ mục này.

Trước hết, tạo một bảng bắt đầu mang tên index_logs để ghi những thay đổi 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, chế tạo ra một trigger DDL để quan sát và theo dõi những đổi khác chỉ mục với cnhát dữ liệu sự khiếu nại 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, công ty chúng tôi đã thực hiện hàm EVENTDATA() trả về thông báo về các sự kiện sever hoặc đại lý tài liệu. Hàm này chỉ khả dụng phía bên trong DDL hoặc trình kích hoạt singin.

Sau kia, sản xuất chỉ mục mang lại cột first_name và 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, tróc nã vấn tài liệu từ bỏ bảng index_changes để đánh giá coi sự khiếu nại tạo thành chỉ mục dành được trình kích hoạt ghi lại đúng cách giỏi không:

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


Trong phần này, chúng ta vẫn mày mò bí quyết sinh sản trigger DDL vào SQL Server phản hồi một hoặc các sự kiện DDL.

Tắt trigger trong SQL Server

Trong phần này, bạn sẽ tìm hiểu cách sử dụng câu lệnh DISABLE TRIGGER vào Squốc lộ Server nhằm tắt trigger.

Giới ttín hiệu lệnh DISABLE TRIGGER vào SQL Server

Thông thường, vì mục tiêu hạn chế và khắc phục sự gắng hoặc Phục hồi dữ liệu, bạn cũng có thể mong muốn tắt trong thời điểm tạm thời trigger. Để làm điều đó, bạn sử dụng câu lệnh DISABLE TRIGGER:

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

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

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

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

CREATE TABLE sales.members ( member_id INT IDENTITY PRIMARY KEY, customer_id INT NOT NULL, member_màn chơi CHAR(10) NOT NULL);Câu lệnh sau tạo thành một trigger được kích hoạt bất kể bao giờ một sản phẩm bắt đầu được ckém vào bảng sales.members. Với mục đích minh họa, trigger chỉ trả về một thông tin đơn giản và 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 đã ckém một sản phẩm new vào bảng sales.members:

INSERT INTO sales.members(customer_id, member_level)VALUES(1,"Silver");Do sự khiếu nại INSERT này, trigger đã làm được kích hoạt với 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 tiếng nếu như khách hàng ckém một mặt hàng new 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ó có nghĩa là trình kích hoạt đã bị loại bỏ hóa.

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

Tắt tất cả trigger của bảng vào SQL Server

Để tắt tất cả những trigger của bảng, bạn áp 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 chỉ định và hướng dẫn tên của bảng nhằm loại bỏ hóa tất cả những trigger trực thuộc về bảng kia.

Câu lệnh sau chế tạo ra một trigger mới trên bảng sales.members được kích hoạt sau sự khiếu nại xóa:

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

DISABLE TRIGGER ALL ON sales.members;Bức Ảnh dưới đây cho thấy thêm tâm lý của toàn bộ những trigger nằm trong bảng sales.members:


Tắt toàn bộ các trigger của các đại lý dữ liệu trong SQL Server

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

DISABLE TRIGGER ALL ON DATABASE;

Bật trigger vào Squốc lộ Server

Trong phần này, các bạn sẽ mày mò phương pháp thực hiện câu lệnh ENABLE TRIGGER vào Squốc lộ Server để bật trigger.

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

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

Sau phía trên minch họa cú pháp của câu lệnh ENABLE TRIGGER:

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

Trước hết, chỉ định tên của trigger nhưng mà bạn có nhu cầu nhảy. Theo tùy lựa chọn, chúng ta cũng có thể hướng đẫn tên của lược thứ chứa trigger.Thứ nhì, hướng đẫn bảng đựng trigger trường hợp nó là trigger DML. Sử dụng DATABASE ví như trigger là trigger có phạm vi các đại lý dữ liệu DDL hoặc ALL SERVER nếu trigger là trigger có phạm vi sever DDL.

Ví dụ về lệnh ENABLE TRIGGER trong Squốc lộ Server

Chúng tôi đang thực hiện bảng sales.members được tạo ra trong phần DISABLE TRIGGER để minh họa.

Để bật trigger sales.sales.trg_members_insert, chúng ta thực hiện câu lệnh sau:

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


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

Để bật tất cả những 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, các bạn chỉ việc hướng đẫn tên của bảng mà lại bạn có nhu cầu nhảy toàn bộ các trigger được links.

Ví dụ: nhằm bật toàn bộ những trigger của bảng sales.members, các bạn áp dụng câu lệnh sau:

ENABLE TRIGGER ALL ON sales.members;Tấm hình tiếp sau đây cho biết tâm lý của toàn bộ những trigger của bảng sales.members:


Bật toàn bộ trigger của các đại lý tài liệu vào Squốc lộ Server

Để bật toàn bộ trigger của cửa hàng tài liệu hiện tại, các bạn thực hiện câu lệnh sau:

ENABLE TRIGGER ALL ON DATABASE;

4 cách coi code của trigger vào SQL Server

Trong phần này, các bạn sẽ tò mò 4 phương pháp xem code của trigger vào Squốc lộ Server.

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

Quý khách hàng rất có thể xem code của trigger bằng cách truy vấn vấn tài liệu dựa vào view sys.sql_modules:

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


Trong truy nã vấn này, bạn truyền thương hiệu của trigger nhưng mà bạn có nhu cầu coi code mang đến hàm OBJECT_ID() vào mệnh đề WHERE.

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

Quý Khách rất có thể xem code của trigger bằng cách thực hiện hàm OBJECT_DEFINITION nhỏng sau:

SELECT OBJECT_DEFINITION ( OBJECT_ID( "sales.trg_members_delete" ) ) AS trigger_definition;Trong truy tìm vấn này, chúng ta truyền thương hiệu trigger đến hàm OBJECT_ID để lấy ID của trigger. Sau kia, chúng ta áp dụng hàm OBJECT_DEFINITION() để lấy code của trigger dựa vào ID của nó.

Xem code của trigger bằng phương pháp sử dụng stored procedure sp_helptext

Cách dễ dàng nhất để lấy code của trigger là sử dụng stored procedure sp_helptext nhỏng sau:

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

Xem code của trigger bởi SSMS

Để coi code của trigger DML:

Thứ nhất, trong Object Explorer, liên kết cùng với cơ sở dữ liệu.Thứ đọng nhì, dịch chuyển tới bảng đựng trigger nhưng bạn có nhu cầu xem code.Thứ đọng tía, không ngừng mở rộng thực đơn Triggers, bấm chuột đề xuất vào trigger bạn có nhu cầu xem code, sau đó bấm Modify. Code khái niệm trigger xuất hiện thêm vào hành lang cửa số tróc nã vấn.

Liệt kê tất cả trigger vào Squốc lộ Server

Để liệt kê toàn bộ trigger trong Squốc lộ Server, các bạn truy tìm vấn dữ liệu từ view sys.triggers nhỏng sau:

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


Xóa trigger vào SQL Server

Trong phần này, bạn sẽ mày mò biện pháp sử dụng câu lệnh DROPhường TRIGGER trong SQL Server để xóa các trigger hiện nay bao gồm.

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

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

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

IF EXISTS chỉ xóa trigger lúc nó vẫn mãi sau.schema_name là tên gọi của lược trang bị chứa trigger DML.trigger_name là tên gọi của trigger mà lại bạn có nhu cầu xóa.

Nếu bạn có nhu cầu xóa nhiều trigger cùng một thời điểm, bạn phải phân bóc những trigger bằng vết phẩy.

Xem thêm: Tìm Hiểu Răng Toàn Sứ Zirconia Là Gì, Giá Bao Nhiêu? Tìm Hiểu Răng Toàn Sứ Zirconia Là Gì

Để xóa một hoặc các 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 DATABASE ;Trong cú pháp này:

Để xóa trigger sự khiếu nại LOGON, bạn áp dụng cú pháp sau:

DROPhường TRIGGER trigger_name ON ALL SERVER;Lưu ý rằng khi chúng ta xóa một bảng, tất cả trigger được links cùng với bảng cũng tự động hóa bị xóa.

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

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

DROPhường TRIGGER IF EXISTS sales.trg_member_insert;Xóa trigger DDL vào SQL ServerCâu lệnh sau sẽ xóa trigger DDL mang tên trg_index_changes:

DROP. TRIGGER IF EXISTS trg_index_changes;

Lời kết

Trong giải đáp này, bạn đã khám phá về:

SQL Server cung ứng bố các loại trigger: Trigger tài liệu ngôn ngữ thao tác làm việc (trigger DML), Trigger tài liệu ngữ điệu khái niệm (trigger DDL), Trigger đăng nhập (trigger Logon).Sử dụng câu lệnh CREATE TRIGGER trong Squốc lộ Server để tạo ra một trigger new.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 nhằm nhảy trigger vào Squốc lộ Server.Sử dụng câu lệnh DROP.. TRIGGER để xóa trigger vào Squốc lộ Server. Squốc lộ Server Chuyên ổn mục: Định Nghĩa

Chuyên mục: Định Nghĩa