Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 06/10/2011, 12h01   #1
Membre habitué
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 238
Points : 148
Points : 148
Envoyer un message via MSN à sihammaster
Par défaut Créer une vue à partir des résultats d'une requêt par une procédure stockée

Bonjour,
comment Créer une vue à partir des résultats d'une requêt par une procédure stockée.
Voila le code de la requete je voudrais créer une vue et la copie vers une autre base de donées, comment faire par une procédure sql?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE proc CopieView
(
@DateD date,
@DateF date
)
AS 
begin
 
SELECT     MDataF.dbo.Assets.symbol, dbo.Finviz_alldata.MarketCap, dbo.Finviz_alldata.PE, dbo.Finviz_alldata.ForwardPE, dbo.Finviz_alldata.PEG, dbo.Finviz_alldata.PS, 
                      dbo.Finviz_alldata.PB, dbo.Finviz_alldata.PCash, dbo.Finviz_alldata.PFreeCashFlow, dbo.Finviz_alldata.[DividendYield%], dbo.Finviz_alldata.EPS, 
                      dbo.Finviz_alldata.datedonnées
FROM         dbo.Assets INNER JOIN
                      dbo.Finviz_alldata ON dbo.Assets.id = dbo.Finviz_alldata.refticker
WHERE     (dbo.Finviz_alldata.datedonnées BETWEEN @DateD AND @DateF)
 
end
Merci de m'aider.
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 12h38   #2
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
Je ne pense pas que ce soit faisable.
Tout au plus envoyer le résultat de la SP dans une table avec

Code :
1
2
INSERT INTO maTable (...)
exec CopieView param1 param2
@+
SLE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 13h23   #3
Membre habitué
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 238
Points : 148
Points : 148
Envoyer un message via MSN à sihammaster
Merci,
Donc c'est impossible de copier une view d'une base de donées vars une autre??
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 13h29   #4
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
Citation:
Envoyé par sihammaster Voir le message
Merci,
Donc c'est impossible de copier une view d'une base de donées vars une autre??
Je n'ai pas dit ça. Je dis qu'il n'est pas possible de créer une vue qui exploite directement une storeproc (donc de faire un select ... from laStoreProc)
Maintenant vous pouvez envoyer le résultat de votre SP dans une table, avec la méthode insert into (...) exec maStoreProc [params, ...], et cette table pourrait éventuellement se trouver sur un autre serveur ou dans une autre base de données, en utilisant les serveurs liés.
SLE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 15h02   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
pourquoi ne pas transformer votre procédure en table-valued function ?
Ça serait plus propre qu'une procédure qui ne fait que de l'affichage.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE FUNCTION dbo.fn_tb_val_CopieView
	( @DateD date, @DateF date )
RETURNS TABLE 
AS
RETURN 
(
	SELECT     MDataF.dbo.Assets.symbol, dbo.Finviz_alldata.MarketCap, dbo.Finviz_alldata.PE, dbo.Finviz_alldata.ForwardPE, dbo.Finviz_alldata.PEG, dbo.Finviz_alldata.PS, 
						  dbo.Finviz_alldata.PB, dbo.Finviz_alldata.PCash, dbo.Finviz_alldata.PFreeCashFlow, dbo.Finviz_alldata.[DividendYield%], dbo.Finviz_alldata.EPS, 
						  dbo.Finviz_alldata.datedonnées
	FROM         dbo.Assets INNER JOIN
						  dbo.Finviz_alldata ON dbo.Assets.id = dbo.Finviz_alldata.refticker
	WHERE     (dbo.Finviz_alldata.datedonnées BETWEEN @DateD AND @DateF)
)
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/10/2011, 17h15   #6
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Vous confondez ce qu'est une vue et une procédure :

- Une vue est une abstraction du modèle de données, qui, lorsqu'elle est interrogée, retourne les lignes des tables sous-jacentes.
Il est donc possible qu'en l'interrogeant deux fois consécutives, vous n'obteniez pas le même ensemble de données.
Notez qu'une se manipule comme une table : on peut faire des jointures sur une vue, y attacher un trigger, et y faire des INSERT / UPDATE /DELETE / BULK INSERT.

- Une procédure stockée est un ensemble d'instructions qui peuvent retourner ou non un ensemble de données, prendre des paramètres en entrée et en sortie ou pas, et peut affecter les données de la base de données ou pas.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h56.


 
 
 
 
Partenaires

Hébergement Web