Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2011, 22h13   #1
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Extraction SQL View

Bonjour à tous,

A une fin ponctuelle, je me suis mis en tête de mettre en place une extraction journalière de données issues de vues SQL.

Etant débutant, j'ai commencé par chercher à réaliser les différentes étapes afin d'y parvenir manuellement.

La structure de mes vues est la suivante:

Citation:
Vue_A*****************Vue_B
colonneA***colonneB*****colonneC***colonneD
A1********B1**********C1********D1
A2********B2**********C2********D2
A3********B3**********C3********D3

Vue_C*****************Vue_D
colonneA***colonneE*****colonneE***colonneD
A2********E1**********E2********D3
A1********E2**********E3********D1
A3********E3**********E1********D2
Les étapes que je vois:
fusion des Vue_A et Vue_C (avec renommage de la colonne commune)
fusion des Vue_B et Vue D (idem)
fusion des deux résultats

Code :
1
2
3
4
5
6
7
8
9
10
USE [base]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [Vue_1]
AS
SELECT *
FROM Vue_A, Vue_C WHERE Vue_A.colonneA = Vue_C.colonneA
(Je renomme l'une des deux colonnes car je n'ai pas réussi à faire un = avec le même nom de colonne).

Ce que je ne comprend pas:
Le résultat de ma vue étant satisfaisant, je souhaitais automatiser le processus mais il semble qu'il n'est pas possible de créer une vue dans une procédure stockée).

Donc, je viens vers vous pour savoir si c'est bien dans une procédure stockée qu'il faut s'orienter, s'il faut passer par une autre piste? De plus, je souhaiterai exporter ce résultat dans un fichier txt ou csv, peu importe?

Je pense pas que cela soit trop compliqué, mais comme je n'y connais rien...

Merci de votre aide !

Cdlt,

fluffy75
fluffy75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 10h11   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
1) Les jointures s'écrivent depuis 1992 avec l'opérateur JOIN ; il serait temps de s'y mettre.

2) Quel est votre SGBD ? MS SQL Server ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 19h00   #3
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Salut,

Ok pour JOIN. J'utilise MS SQL Server 2005.

Merci pour votre réponse.
fluffy75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 10h20   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Une vue suffit :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE VIEW V_ABCD
AS
SELECT *
FROM   maVueA
UNION 
SELECT *
FROM   maVueB
UNION ALL
SELECT *
FROM   maVueC
UNION 
SELECT *
FROM   maVueD
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 06h42   #5
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Salut,

Bon, on avance. Grace à vos conseils, j'arrive à générer la vue désirée des 4 tables. Je n'ai pas pu passer par join car j'avais une erreur de type de donnée (le join forçait un nvarchar en int). Et j'ai du renommer chaque colonne "referente" de comparaison, car j'avais une erreur de nom identique (... must be unique...).

Du coup j'ai fait un select de toute mes colonnes from mes 4 tables where ... = ... AND ... = ... AND ....= ...

Maintenant, comment puis-je exécuter cette tache automatiquement à intervalle régulier? De plus, je souhaiterai rajouter des commandes pour modifier la vue (exemple: divisé une colonne par 1000), toujours dans cette exécution automatique. Je dois faire ça a quel endroit?

En tout cas, merci pour votre aide, ça avance
fluffy75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 07h29   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Automatiser quel processus? la creation de la vue?

Elle est créée vous n'avez plus besoin de le faire?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 08h16   #7
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 848
Points : 6 848
Citation:
Maintenant, comment puis-je exécuter cette tache automatiquement à intervalle régulier? De plus, je souhaiterai rajouter des commandes pour modifier la vue (exemple: divisé une colonne par 1000), toujours dans cette exécution automatique. Je dois faire ça a quel endroit?
Quelle raison vous pousse à automatiser cela ? Précisez nous le contexte

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 07h03   #8
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
Bonjour,

En fait, mes vues sont incrémentées quotidiennement, donc je souhaiterai avoir l'update correspondant de ma vue créée.

++
fluffy75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 11h13   #9
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
les vues ne sont pas des tables! elles ne représentent que le résultats de la requete utilisée pour la créer.

Si les tables vers laquelle "pointe" la vue sont mise à jours la vue est automatiquement "mise à jour".
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web