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 :

Problème de création de vue pour récupérer une Date/Heure système lors d'un ajout dans une table


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de création de vue pour récupérer une Date/Heure système lors d'un ajout dans une table
    Bonjour à tous,

    Je connais mieux Oracle ainsi que la syntaxe pour faire ce dont j'ai envie. Cependant je suis dans un environnement MS SQL server version 2014. Et je n'arrive pas à faire ce type de vue.

    Exemple Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE MATERIALIZED VIEW MV_UneVueMaterialisee
    REFRESH FAST
    START WITH SYSDATE
    NEXT SYSDATE + 1
    AS SELECT * FROM monSchema.MaTable;

    Sous MS SQL Server je n'ai trouvé que le fait de faire :

    CREATE VIEW V1 WITH SCHEMABINDING AS

    Voici le contexte :

    Nous avons une Base A (Cette base nous n'avons aucun droit : Ajout de colonne de table, de champ, procédure stockée etc..).

    Nous avons une Base B (Sur cette base je fais ce que je veux).

    Mon problème est le suivant :

    - Dans la base A il y a une table stagiaire.
    - Dans la base B j'ai une table calendrier.

    Je voudrais créer une vue matérialisée (ou indéxée en MS SQL Server) qui va me récupérer la date/heure système lors de l'ajout d'une nouvelle valeur dans la table stagiaire. Cette date/heure, je veux la stocker dans ma vue. Ce qui va me permettre de faire une insertion des dernières valeurs ta ma table calendrier.

    De plus information supplémentaire : Dans la Base A que je ne peux modifier, il n'hésite pas de date de création. Cependant je pourrai me baser sur la clé primaire qui est auto incrémenté.

    Pouvez - vous m'aider à trouver une solution qui va me permettre de récupérer cette date/heure système dans une vue.


    Merci par avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Vous ne pouvez pas faire de vue indexée interbase. Pour une vue indexée (qui est une vue matérialisée automatique) il faut que toutes les données figurent dans la même base et qu'il y ait surjection entre les lignes sources et les lignes cible (vue).

    je me demande d'ailleurs si vous n'avez pas fait une erreur de modélisation en splitant sur deux bases de données des données conjointes. Il aurait meiux valu utiliser le concept de schéma SQL.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse cela confirme ce que je pensais sur la non-faisabilité de ma demande mais sait-on jamais.

    Oui, il y a un problème évidant de conception je suis totalement d'accord avec vous, le contexte est qu'il y a 2 applications. La première déjà existante qui se branche sur la Base A, que nous devons absolument pas toucher.
    La deuxième est une nouvelle application que nous devons créer. Nous avons donc du créer notre propre modèle cependant, il faut également qu'on récupère des données de la Base A.

    C'est pourquoi je cherche une solution pour pouvoir faire ce que je souhaite.

    Pensez-vous qu'il existe une autre méthode qui pourrait me permettre de récupérer les dernier ID insérer par exemple ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par mattmattor Voir le message
    Merci de votre réponse cela confirme ce que je pensais sur la non-faisabilité de ma demande mais sait-on jamais.

    Oui, il y a un problème évidant de conception je suis totalement d'accord avec vous, le contexte est qu'il y a 2 applications. La première déjà existante qui se branche sur la Base A, que nous devons absolument pas toucher.
    La deuxième est une nouvelle application que nous devons créer. Nous avons donc du créer notre propre modèle cependant, il faut également qu'on récupère des données de la Base A.

    C'est pourquoi je cherche une solution pour pouvoir faire ce que je souhaite.
    La bonne solution aurait été d'intégrer vos nouvelles table dans un nouveau schéma SQL de la première base. Ceci se fait par les commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE SCHEMA NomNouveauSchema;
    GO
    CREATE TABLE NomNouveauSchema.MaNouvellelTable ( ... );
    GO
    Tout simplement. pas besoin comme dans Oracle de créer un utilisateur propriétaire du schéma...

    Pensez-vous qu'il existe une autre méthode qui pourrait me permettre de récupérer les dernier ID insérer par exemple ?
    Si vous optez pour l'intégration de vos données dans le nouveau schéma, alors vous pouvez créer une vue indexée.

    Si non, il existe plusieurs moyens de faire ce que vous voulez.

    Si vous voulez plus d'aide, merci de nous donner le DDL des tables en jeux, éventuellement un jeu de données d'essai, ainsi qu'un exemple du résultat que vous voulez obtenir.

    Pour le jeu d'essai, vous pouvez utiliser la procédure que j'ai mis au point : https://blog.developpez.com/sqlpro/p...ipt-dinsertion

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/05/2016, 14h02
  2. Réponses: 1
    Dernier message: 31/08/2009, 22h48
  3. [Dates] Fonction php qui retourne le mois dans une date
    Par super-java dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2008, 18h24
  4. java.lang.StackOverflowError lors de l'ajout dans une ArrayList
    Par alys56 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/04/2008, 18h54
  5. Erreur lors de l'ajout dans une table
    Par k_boy dans le forum Bases de données
    Réponses: 14
    Dernier message: 31/03/2008, 15h05

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