2010-09-08 25 views
3

Je suis nouveau sur SQL Server et je suis plus familier avec la base de données ORACLE. J'aimerais savoir s'il est possible de définir un contexte d'identifiant client comme dans Oracle en utilisant DBMS_SESSION.set_client_identifier et saisir la valeur en utilisant une fonction. J'essaie de suivre les changements de données, y compris qui/qui nom d'utilisateur a fait les changements. Mon plan pour créer des déclencheurs qui capturent la valeur OLD, la valeur NEW et le nom d'utilisateur.DBMS_SESSION.set_client_identifier équivalent dans SQL Server

La connexion au serveur utilise une connexion groupée. L'utilisation du nom d'utilisateur qui se connecte à la base de données n'est donc pas la solution.

quelqu'un a une idée?

Merci avant, -Y

Répondre

2

Si vous ne pouvez pas utiliser les propriétés de la connexion elle-même (car il est mis en commun), vous devrez définir quelques informations supplémentaires après votre appel à connection.Open(). Mais si je lis correctement votre question, c'est bon pour vous. Vous pouvez donc utiliser les serveurs SQL "SET CONTEXT_INFO", qui vous permettent de stocker jusqu'à 128 octets arbitraires dans le contexte de session/connexion et que vous pouvez interroger par la suite avec la fonction "CONTEXT_INFO()". Voir la description >here<.

+0

Merci. Je pense que cela fait l'affaire. Je prévois de stocker un nom d'utilisateur car la connexion proviendra d'une application Web à des fins d'audit et de journalisation. Comme il n'accepte qu'un varbinary, je pense que je dois le faire: Declare @test varbinary (128) set @test = convertir (varbinary (128), 'Jeremy') SET CONTEXT_INFO @test – Jeremy

+0

Yup, ça devrait marcher . – TToni