IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Développement SQL Server Discussion :

SQL Server 2000 : INSERT INTO . . EXEC problème


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut SQL Server 2000 : INSERT INTO . . EXEC problème
    Bonjour,

    J'ai récupéré sur le net une requête T-SQL qui permet de lister les instances d'un serveur. Elle fonctionne parfaitement avec SQL Server 2008 / 2008 R2 et 2005, mais j'ai un soucis avec la version 2000.

    Voici la requête :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    Set NoCount On
    Declare @CurrID int,@ExistValue int, @MaxID int, @SQL nvarchar(1000)
    Declare @SQLInstances Table (
         InstanceID int identity(1, 1) not null primary key,
         InstName nvarchar(180),
         Folder nvarchar(50));
     
    Insert Into @SQLInstances (InstName, Folder)
    Exec xp_regenumvalues N'HKEY_LOCAL_MACHINE', N'SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL';
     
    Declare @Keyexist Table (Keyexist int)
     
    Insert into @Keyexist
    Exec xp_regread'HKEY_LOCAL_MACHINE', N'SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL';
    Select @ExistValue= Keyexist from @Keyexist
     
    If @ExistValue=1
     
    Insert Into @SQLInstances (InstName, Folder)
    Exec xp_regenumvalues N'HKEY_LOCAL_MACHINE', N'SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL';
     
    Select serverproperty('ComputerNamePhysicalNetBIOS') as ServerName, InstName
    From @SQLInstances
     
    Set NoCount Off
    Et voici l'erreur retournée par SQL Server :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible d'utiliser EXECUTE comme source lors de l'insertion dans une variable de table.
    3 fois ce message d'erreur car j'essaye 3 fois d'utiliser un EXEC avec un INSERT INTO.

    Connaissez-vous un moyen de contourner ce problème?

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Par défaut
    Bon désolé j'ai posté un peu vite. J'ai trouvé.

    Si sa intéresse quelqu'un, il ne gère pas trop les variables de table donc tout simplement créer une table temporaire et la droper a la fin du script.

    De plus, il faut préciser : master..xp_regenumvalues sous SQL Server 2000.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Serveur 2000] INSERT INTO tbl EXEC sp
    Par odransart dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/02/2008, 15h47
  2. [SQL Server 2000] Compilation via isql - problème accents
    Par Misko dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 15/06/2007, 14h29
  3. Réponses: 4
    Dernier message: 22/09/2006, 14h24
  4. Réponses: 1
    Dernier message: 22/09/2006, 13h56
  5. problème d'insertion sur une BD SQL server 2000
    Par offspring140 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 22/05/2006, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo