SQL Server EVENTDATA () ne fonctionne pas à partir de MAC SQL Pro pour SQL Server

SQL Server EVENTDATA () ne fonctionne pas à partir de MAC SQL Pro pour SQL Server. J'utilise un triggersur pour valider l'adresse IP des users connectés à SQL Server. C'est mon triggersur:

CREATE TRIGGER [trLogOnCheckIP] ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON AS BEGIN DECLARE @IPAddress NVARCHAR(50) SET @IPAddress = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(50)') ; IF @IPAddress IS NULL OR NOT EXISTS (SELECT IP FROM master..ValidIPAddress WHERE IP = @IPAddress) BEGIN -- If login is not a valid one, then undo login process ROLLBACK --Undo login process INSERT INTO master..RejectedLogIn (IP) VALUES (@IPAddress) END END 

Je n'obtiens aucune ligne dans RejectedLogIn et l'user ne peut pas se connecter, obtenant une erreur de triggersur. Il échoue probablement lors de l'exécution de EVENTDATA() . Si je commente le corps de la gâchette, cela fonctionne.

J'ai corrigé le problème en définissant les variables suivantes:

 SET ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING ON; 

J'ai réalisé à ce sujet après avoir vérifié les journaux du server:

SELECT a échoué car les options SET suivantes ont des parameters incorrects: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Vérifiez que les options SET sont correctes pour une utilisation avec des vues indexées et / ou des index sur des colonnes calculées et / ou des index filtrés et / ou des notifications de requête et / ou des methods de type de données XML et / ou des opérations d'index spatial.