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

MS SQL Server Discussion :

execution d'un script T-sql


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 24
    Points
    24
    Par défaut execution d'un script T-sql
    bonjour,
    j aimerai savoir comment excuter un script T-sql de création de procedure stocké, à partir de mon application sur un server sql server 2005
    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 142
    Points : 185
    Points
    185
    Par défaut
    Je pense que tu dois pouvoir envoyer ta requête de création de ps comme n'importe quelle autre requête.

    Sinon, pour que l'on t'aide, tu devrais donner plus de précisions : en quel langage est écrit ton application? Quelle plateforme utilises-tu (si tu en utilises une) ? .Net, J2EE, etc... ? Quelles bibliothèques utilises-tu pour la connection à ton serveur de données ? ADO, ADO.Net, etc... ?
    "Le problème du monde, c'est que les imbéciles sont présomptueux et les gens intelligents bourrés de doutes" B. Russell

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    mon application utilise une procédure stocké sous sql server 2005,
    je developpe avec c# sous .Net, et j utilise ADO.net pour la connexion et l execution des requettes,
    j aimrai bien savoir est ce que c est possible de vérifier l existance de cette procédure au début et si elle existe pas , la créer;
    j ai trouvé ce code qui créer la procédure si elle existe pas
    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
    IF NOT EXISTS (SELECT * FROM   INFORMATION_SCHEMA.ROUTINES  WHERE  ROUTINE_NAME = 'MA_PROC' AND  ROUTINE_SCHEMA = 'dbo')
    begin
    SET QUOTED_IDENTIFIER ON 
     GO
     SET ANSI_NULLS OFF 
    GO
     CREATE        PROCEDURE dbo.MA_PROC
       @VAR1 NVARCHAR(100)
       AS
     
         SELECT * from examen where id =@VAR1
     
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    end
    l execution retourne des erreurs mais la procédure se crée normalement,
    mais quand j execute ta requête de création de ps comme n'importe quelle autre requête, ça marche pas,
    est ce que c possible d'executer le script à partir de mon application?
    Merci

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 142
    Points : 185
    Points
    185
    Par défaut
    Alors déjà pour éviter les erreurs à la création de la ps, écris plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    IF EXISTS (SELECT * FROM   INFORMATION_SCHEMA.ROUTINES  WHERE  ROUTINE_NAME = 'MA_PROC' AND  ROUTINE_SCHEMA = 'dbo')
    DROP PROCEDURE [dbo].MA_PROC
    GO
    CREATE PROCEDURE dbo.MA_PROC
    	@VAR1 NVARCHAR(100)
    AS
    	SELECT * FROM examen WHERE id =@VAR1
    GO
    Et pour créer ta ps dans ton code C#, tu peux t'inspirer des exemples fournis dans la MSDN.
    Le code d'exemple est en VB.Net mais est très facilement transposable en C# (les noms de classes, de méthodes, d'attributs ne changeant pas).

    En gros, il faut instancier un objet de type SqlCommand , passer le texte de création de ta ps dans la property CommandText de ton objet, puis appeler la méthode ExecuteNonQuery(), sans oublier d'ouvrir et de fermer une connexion vers ton serveur de BDD bien sûr.
    "Le problème du monde, c'est que les imbéciles sont présomptueux et les gens intelligents bourrés de doutes" B. Russell

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    en faite le probleme c est que je me tout le scipt en un seul coup
    il fallait le divivé en partis
    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
                string req1 = "SELECT * FROM   INFORMATION_SCHEMA.ROUTINES  WHERE  ROUTINE_NAME = Ma_PROC AND  ROUTINE_SCHEMA = 'dbo'";
                SqlDataReader reader;
                try
                {
                    reader = Program.data_conn.ExecuteQuery(req1);
                    if (!reader.Read())
                    {
                         string req2 = "CREATE PROCEDURE dbo.MA_PROC \n"
                                            + "@VAR1 NVARCHAR(100) \n"
                                             + "AS \n"
                                            + "SELECT * FROM examen WHERE study_uid =@VAR1 \n";
                        data_conn.ExecuteNonQuery(req2);
                    }
                    reader.Close();
                }
                catch (SqlException sqlEx)
                {
                    //LogFile.Log(sqlEx.Message);
                    reader = null;
                }
    et ça marche bien

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

Discussions similaires

  1. Execution d'un script PL/SQL
    Par rinuom dans le forum PL/SQL
    Réponses: 5
    Dernier message: 24/06/2008, 18h27
  2. execution d'un script avec sql+
    Par GlamIS dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 25/07/2007, 09h54
  3. execution partielle d'un script PL/SQL
    Par dyvim dans le forum PL/SQL
    Réponses: 24
    Dernier message: 29/12/2005, 11h33
  4. Execution Script PL/SQL
    Par hair_peace dans le forum PL/SQL
    Réponses: 13
    Dernier message: 29/06/2005, 10h55
  5. Execution d'un script SQL
    Par Drahu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/03/2004, 16h55

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