kzen.dev
  • Questions
  • Tags
  • Utilisateurs
Notifications
Récompenses
Inscription
Une fois inscrit, vous serez informé des réponses et des commentaires à vos questions.
Connectez-vous
Si vous avez déjà un compte, connectez-vous pour vérifier les nouvelles notifications.
Il y aura des récompenses pour les questions, réponses et commentaires ajoutés.
Détails
Source
Editer
 jonathanpeppers
jonathanpeppers
Question

SQL Server - Procédure stockée SELECT FROM

J'ai une procédure stockée qui renvoie des lignes :

CREATE PROCEDURE MyProc
AS
BEGIN
    SELECT * FROM MyTable
END

Ma procédure actuelle est un peu plus compliquée, c'est pourquoi une sproc est nécessaire.

Est-il possible de sélectionner la sortie en appelant cette procédure ?

Quelque chose comme :

SELECT * FROM (EXEC MyProc) AS TEMP

J'ai besoin d'utiliser SELECT TOP X, ROW_NUMBER, et une clause WHERE supplémentaire pour paginer mes données, et je ne veux pas vraiment passer ces valeurs comme paramètres.

312 2009-09-29T13:05:57+00:00 3
the  Tin Man
the Tin Man
Question modifiée 19 septembre 2012 в 6:31
Programmation
sql-server-2005
sql
sql-server
stored-procedures
Cette question a 1 réponse en anglais, pour les lire connectez-vous à votre compte.
Charles Bretana
Charles Bretana
29 septembre 2009 в 1:11
2009-09-29T13:11:55+00:00
Détails
Source
Editer
#9525353

Vous pouvez

  1. créer une variable de table pour contenir le résultat de la procédure stockée et puis
  2. insérer la sortie de la sortie de la proc stockée dans la variable de table, et ensuite
  3. utiliser la variable de table exactement comme vous le feriez avec n'importe quelle autre table...

... sql ....

Declare @T Table ([column definitions here])
Insert @T Exec storedProcname params 
Select * from @T Where ...
Charles Bretana
Charles Bretana
Réponse modifiée 20 décembre 2016 в 5:11
175
0
 CMerat
CMerat
29 septembre 2009 в 1:11
2009-09-29T13:11:01+00:00
Détails
Source
Editer
#9525352

Vous voulez soit une [fonction évaluée par une table][1], soit insérer votre EXEC dans une table temporaire :

INSERT INTO #tab EXEC MyProc

[1] : http://www.sqlteam.com/article/intro-to-user-defined-functions-updated

72
0
Lawrence Barsanti
Lawrence Barsanti
29 septembre 2009 в 1:12
2009-09-29T13:12:04+00:00
Détails
Source
Editer
#9525354

Il semble que vous deviez simplement utiliser une [vue][1]. Une vue permet de représenter une requête sous la forme d'une table afin que la vue puisse être interrogée.

[1] : http://msdn.microsoft.com/en-us/library/aa258253%28SQL.80%29.aspx

2
0
Ajouter une question
Catégories
Toutes
Technologie
Culture / Loisirs
Vie / Arts
Science
Professionnel
Entreprises
Utilisateurs
Tous
Nouveau
Populaire
1
Ilya Smirnov
Enregistré il y a 6 jours
2
Денис Васьков
Enregistré il y a 1 semaine
3
Dima Patrushev
Enregistré il y a 1 semaine
4
sirojidddin otaboyev
Enregistré il y a 2 semaines
5
Елена Гайдамамакинат
Enregistré il y a 2 semaines
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RO
RU
SK
TR
ZH
© kzen.dev 2023
Source
stackoverflow.com
sous licence cc by-sa 3.0 avec l'attribution