Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Utiliser les variables d'environnement Windows depuis SQL SERVER
    Bonjour à tous,

    Je souhaite utiliser les variables d’environnement Windows dans mes requêtes SQL afin d'allez chercher la variable %USERNAME% ( et d'autres) depuis SSMS14

    Est-ce seulement possible ? Ou SQL Server n'as pas accès au variable Windows ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM <MaTable>
    WHERE NomUtilisateur= %USERNAME%

  2. #2
    Expert éminent
    Voici un lien qui explique comment faire :

    http://www.sqlusa.com/bestpractices/...ment-variable/

    Il me semblait qu'on pouvait se passer de la table temporaire, mais je ne retrouve pas comment faire...

    -- Edit : Attention, vous allez retrouver les variables d'environnement de l'instance de SQL Server. Donc si ça tourne sur un serveur avec un compte spécifique, ce seront ces variables que vous allez récupérer. Pour récupérer le nom de l'utilisateur connecté, il y a d'autres fonctions dédiées pour lire le contexte utilisateur.
    https://docs.microsoft.com/en-us/sql...l-server-ver15
    https://docs.microsoft.com/en-us/sql...l-server-ver15
    https://docs.microsoft.com/en-us/sql...l-server-ver15
    https://docs.microsoft.com/en-us/sql...l-server-ver15

    Etc.
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Rédacteur

    SELECT SYSTEM_USER;

    donne le nom du login Windows... pas besoin de tripatouiller au niveau système....

    Quels sont les autres variables dont vous avez besoin ?

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  4. #4
    Candidat au Club
    Merci à vous,

    J'ai testé du coup je passe par la table temporaire.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    -- Retrieve a single environment variable - Read environment variable
     
    DECLARE @EnvVar nvarchar(256)
     
    CREATE TABLE #Upload(EnvVar nvarchar(256))
     
    INSERT INTO #Upload
     
    EXEC xp_cmdshell 'echo %USERNAME%'
     
    DELETE #Upload WHERE EnvVar is NULL OR EnvVar = ''
     
    SET @EnvVar = (SELECT EnvVar from #Upload)
     
    SELECT @EnvVar as [User Domain]
     
    DROP TABLE #Upload


    Je vais aussi avoir besoin d'ajouter une variable d'environnement que je vais créer. Mais je pense que j'ai trouvé comment faire.

    Merci de vos réponse,