Procédure stockée et remplissage d'une table temporaire à partir d'un Procédure Stockée avec des paramètres
J'ai une Procédure Stockée (SP) dans lequel je passe à une valeur unique. Dans ce SP, je suis en train de créer/remplir une Table temporaire à partir du résultat d'une autre SP qui est sur un Lien/serveur distant. Ce n'est que je suis en train de executute une SP dans la mon SP et remplir une table temporaire qui ma requête à utiliser.
J'ai essayé d'utiliser la syntaxe suivante, mais il ne fonctionne pas comme il semble openquery n'aime pas le "+" ou le @param1 paramètre.
select * into #tempTable
from openquery([the Linked server],'exec thelinkedSPname ' + @param1)
Si j'ai de la valeur de paramètre codé en dur dans le présent, il fonctionne très bien.
select * into #tempTable
from openquery([the Linked server],'exec thelinkedSPname 2011')
J'ai aussi allés aussi loin que manuellement la construction de la table temporaire et tente d'exécuter le lié SP mais cela ne fonctionne pas ainsi.
create table #tempTable(
.
.
.
)
insert into #tempTable
(
.
.
.
)
Exec [the Linked server],'exec thelinkedSPname ' + @param1
Des suggestions quant à la façon de remplir une table temporaire dans une SP qui exécute un SP par l'intermédiaire d'un serveur lié. Remarque le SQL ci-dessus est seulement le pseudo-code
OriginalL'auteur R M | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Deux mots: Requête Dynamique.
Essayez ceci:
Cela est bien documenté ici:
Comment passer une variable à une requête de serveur lié
Merci cela a fonctionné.
OriginalL'auteur Kash
Je pense que vous êtes va avoir besoin de SQL dynamique, puisque vous ne pouvez pas passer le paramètre à une
OPENQUERY
comme ça (mais d'abord visiter cette lien) Donc vous devriez avoir quelque chose comme ceci:OriginalL'auteur Lamak
Avec les avertissements habituels sur le gardiennage de SQL dynamique, vous pouvez le faire sans OPENQUERY etc. Appelez simplement sp_executesql à distance:
OriginalL'auteur Aaron Bertrand
J'utilise cette méthode assez fréquemment:
OriginalL'auteur DeFlanko
Avec un peu de soin, vous pourriez utiliser un partage de la table temporaire:
OriginalL'auteur Shaun Keon