Tôi đang tìm phương thức di động nhất để kiểm tra sự tồn tại của trình kích hoạt trong MS SQL Server. Nó cần phải làm việc trên ít nhất SQL Server 2000, 2005 và tốt nhất là 2008.Cách di động nào nhất để kiểm tra xem trình kích hoạt có tồn tại trong SQL Server không?
Thông tin không xuất hiện trong INFORMATION_SCHEMA, nhưng nếu nó ở trong một nơi nào đó, tôi muốn sử dụng nó từ đó.
tôi biết của phương pháp này:
if exists (
select * from dbo.sysobjects
where name = 'MyTrigger'
and OBJECTPROPERTY(id, 'IsTrigger') = 1
)
begin
end
Nhưng tôi không chắc liệu nó hoạt động trên tất cả các phiên bản SQL Server.
[Quan trọng caveat] (https://msdn.microsoft.com/en-us/library/ms190328 (v = sql.100) .aspx): "* Đối tượng không được lược đồ phạm vi, chẳng hạn như trình kích hoạt DDL, không thể được truy vấn bằng cách sử dụng OBJECT_ID. * "Cách giải quyết trong các trường hợp này là sử dụng khung nhìn' sys.triggers' như là @marc_s mô tả trong câu trả lời của anh ta. – mwolfe02