Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Có cách nào để vô hiệu hóa trình kích hoạt SQL Server chỉ cho một phạm vi thực thi cụ thể không?

Tôi vừa thấy bài viết này gần đây được đánh dấu trên bản tin SQL Server Central và nó dường như cung cấp một cách mà bạn có thể thấy hữu ích bằng cách sử dụng Context_Info trên kết nối:

http://www.mssqltips.com/tip.asp?tip=1591

EDIT bởi Terrapin:

Liên kết trên bao gồm mã sau:

USE AdventureWorks;  
GO  
-- creating the table in AdventureWorks database  
IF OBJECT_ID('dbo.Table1') IS NOT NULL  
DROP TABLE dbo.Table1  
GO  
CREATE TABLE dbo.Table1(ID INT)  
GO   
-- Creating a trigger  
CREATE TRIGGER TR_Test ON dbo.Table1 FOR INSERT,UPDATE,DELETE  
AS  
DECLARE @Cinfo VARBINARY(128)  
SELECT @Cinfo = Context_Info()  
IF @Cinfo = 0x55555  
RETURN  
PRINT 'Trigger Executed'  
-- Actual code goes here  
-- For simplicity, I did not include any code  
GO  

Nếu bạn muốn ngăn trình kích hoạt được thực thi, bạn có thể làm như sau:

SET Context_Info 0x55555 
INSERT dbo.Table1 VALUES(100)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể chọn dữ liệu máy chủ sql bằng cách sử dụng vị trí thứ tự cột không

  2. SQL Server thay đổi phông chữ trong chuỗi html

  3. Một kết nối đã được thiết lập thành công với máy chủ, nhưng sau đó đã xảy ra lỗi trong quá trình bắt tay đăng nhập trước

  4. Làm thế nào để kiểm tra kết quả công việc gói SSIS sau khi nó đã hoàn thành việc thực thi?

  5. Truy cập vào tập hợp kết quả từ bên trong các thủ tục đã lưu trữ Transact-SQL SQL Server