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 :

Insertion de données dans plusieurs tables à partir d'une vue


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Par défaut Insertion de données dans plusieurs tables à partir d'une vue
    Bonjour à tous
    Je voudrais savoir la manière la plus efficace d'insérer des données à partir d'une vue.
    Concrétement , j'ai une vue qui provient de plusieurs tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT        EasyPark.Adresse.route, EasyPark.Adresse.street_number, EasyPark.Adresse.postal_code, EasyPark.Adresse.locality, EasyPark.Adresse.country, EasyPark.Adresse.administrative_area_level_1, 
                             EasyPark.Client.Nom, EasyPark.Client.Prenom, EasyPark.Client.Email, EasyPark.Client.Password, EasyPark.TypeAdresse.Libelle, EasyPark.Langue.Libelle AS Expr1
    FROM            EasyPark.Adresse INNER JOIN
                             EasyPark.Client ON EasyPark.Adresse.IdCLient = EasyPark.Client.IdClient INNER JOIN
                             EasyPark.TypeAdresse ON EasyPark.Adresse.IdType = EasyPark.TypeAdresse.IdType INNER JOIN
                             EasyPark.Langue ON EasyPark.Client.Idlangue = EasyPark.Langue.IdLangue
    Cette vue me permet d'afficher un formulaire d'enregistrement.
    Lors de la validation de l'enregistrement je voudrais que chaque donnée soit insérer dans la table à laquelle elle appartient
    Table adresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE TABLE [EasyPark].[Adresse](
    	[IdAdress] [int] IDENTITY(1,1) NOT NULL,
    	[route] [varchar](50) NOT NULL,
    	[street_number] [varchar](50) NOT NULL,
    	[postal_code] [varchar](10) NOT NULL,
    	[locality] [varchar](50) NOT NULL,
    	[country] [varchar](50) NOT NULL,
    	[IdType] [int] NOT NULL,
    	[IdCLient] [int] NOT NULL,
    	[administrative_area_level_1] [varchar](50) NULL)
    Table Client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE [EasyPark].[Client](
    	[IdClient] [int] IDENTITY(1,1) NOT NULL,
    	[Nom] [varchar](50) NOT NULL,
    	[Prenom] [varchar](50) NOT NULL,
    	[Email] [varchar](60) NOT NULL,
    	[Password] [varchar](50) NOT NULL,
    	[Role] [varchar](50) NOT NULL,
    	[Idlangue] [int] NOT NULL)
    Table TypeAdresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE TABLE [EasyPark].[TypeAdresse](
    	[IdType] [int] IDENTITY(1,1) NOT NULL,
    	[Libelle] [varchar](50) NOT NULL)
    Table Langue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE TABLE [EasyPark].[Langue](
    	[IdLangue] [int] IDENTITY(1,1) NOT NULL,
    	[Libelle] [varchar](50) NOT NULL)
    Je pensais à un trigger mais c'est un de mes points faibles car la syntaxe m’embrouille un peu

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Il y a quelque chose que je ne comprends pas.
    Ta vue interroge des données existantes dans les trois tables où tu cherches à insérer ces données...
    Y a pas comme un serpent qui se mord la queue ?

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Effetivement les déclencheurs de type INSTEAD OF vous permettent de réaliser cela pour des vues complexes; sinon, vous pouvez exécuter le DML directement.
    Exposez le code de votre trigger, et dites-nous ce qui vous gêne. Voici un billet un peu ancien mais toujours d'actualité sur ce sujet.

    Le sujet de l'exécution d'ordres DML sur des vues est traité en page 363, partie 2 (programmation avancée) du livre référencé dans ma signature, avec toutes ses subtilités.

    @++

Discussions similaires

  1. Réponses: 15
    Dernier message: 14/06/2009, 04h20
  2. Réponses: 5
    Dernier message: 24/10/2008, 10h43
  3. Réponses: 6
    Dernier message: 05/02/2008, 15h46
  4. Réponses: 7
    Dernier message: 12/10/2004, 16h43
  5. Réponses: 6
    Dernier message: 15/04/2004, 11h04

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