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

SSIS Discussion :

[SSIS][2k5]Problème Execute SQL Task


Sujet :

SSIS

  1. #1
    Membre régulier
    Avatar de gassisprog
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Points : 86
    Points
    86
    Par défaut [SSIS][2k5]Problème Execute SQL Task
    Bonjour;

    J'ai un projet SSIS qui contient une tâche d'exécution de requête SQL (Ang : Execute SQL Task).

    J'ai réussi à effectuer une tâche qui crée la base destination ainsi que toutes ses tables --> Donc une requête avec l'instruction "Create" fonctionne bien

    Code sql : 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
     
    CREATE DATABASE [***] ON  PRIMARY 
    ( NAME = ******....****** , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
     LOG ON 
    ( NAME = ******....****** , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    USE [****]
    GO
     
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE[*].[*](
    .
    .
    .)

    Je veux maintenant refaire le travail avec une instruction "Update".

    Est ce possible de le faire?

    Si oui, est ce qu'on peut faire un traitement conditionnel dans la requête?
    C'est à dire elle fait une création avec l'instruction "Create" lorsqu'on l'exécute pour la première fois et une mise à jour avec l'instruction "Update" lorsqu'on veut faire des mises à jour sur la base destination suite à des changements effectués dans la base de données.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Bonjour,

    C'est bien sûr possible. Ex pour une table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[population].[DimPopulation_Personne]') AND type in (N'U'))
    DROP TABLE [population].[DimPopulation_Personne]
    else ...
    Si tu as plusieurs instructions dans ton "if" ou dans ton "else", ajoute les blocs "begin" et "end" en début et fin de traitement. Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ...
    begin
    ...
    end
    else
    begin
    ...
    end
    En ce qui concerne les bases de données, tu as la vue "sys.databases" (en sql 2005 en tout cas) permettant de lister les bases de ton instance sql.

    Tu peux trouver toute la doc à ce sujet dans les books online.

    En ce qui concerne ton "update", pour une db, c'est "alter"...

  3. #3
    Membre régulier
    Avatar de gassisprog
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Points : 86
    Points
    86
    Par défaut
    Merci bien psychokwax pour votre réponse, mais je n'ai pas bien saisi votre idée.

    En effet, ce que je veux faire peux être selon l'une des deux méthodes suivantes :

    1- Modifier la première "Execute SQL Task" en lui ajoutant des instructions "Update" (avec les "Create" déja existants) et dans ce cas je dois faire des conditions sur l'état de la base.

    2- Créer une deuxième "Execute SQL Task" qui prend en entrée la première "Execute SQL Task" et qui contient seulement des instructions "Update" (les instructions "Create" étant déjà présentes dans la première "Execute SQL Task")

    Je voulais savoir si c'est faisable que ça soit avec la première méthode ou la deuxième?

    Et si quelqu'un peut donner une idée pour le faire.

Discussions similaires

  1. [SSIS] [2K5] Execute SQL Task
    Par akernet dans le forum SSIS
    Réponses: 5
    Dernier message: 25/01/2011, 15h24
  2. Réponses: 7
    Dernier message: 28/09/2010, 13h55
  3. Réponses: 3
    Dernier message: 27/05/2009, 08h53
  4. Réponses: 0
    Dernier message: 12/03/2009, 11h40
  5. [SQL SERVER 2005 - SSIS] - Execute SQL Task
    Par sandF dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 28/01/2008, 15h02

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