9

Je tente d'ajouter un tableadapter à une procédure stockée dans mon SQL Server 2005 Express. La procédure stockée utilise cependant une table temporaire appelée #temp. Lors de la création de l'adaptateur de table, Visual Studio se plaint de "Unknown Object '#temp" "et indique que la procédure stockée renvoie 0 colonnes. Ceci est problématique car j'utilise cette procédure stockée avec un rapport de cristal et j'ai besoin de ces colonnes.Pourquoi mon dataset typé n'aime-t-il pas les tables temporaires?

Comment puis-je résoudre ce problème?

Répondre

30

Bizarre. Selon this vous ajoutez

IF 1=0 BEGIN 
    SET FMTONLY OFF 
END 

à droite SP après la partie AS du PS et il fonctionne. Visual Studio n'a maintenant aucun problème avec cela. Je n'ai aucune idée pourquoi cela fonctionne comme ça, ou pourquoi cela fonctionnerait, mais c'est le cas.

+2

Quelqu'un ayant probablement une mauvaise journée. Ça m'a aidé. +1 –

+0

tout ce que je peux dire c'est ... wow. cela marche. C'est un gros problème pour moi. J'utilise des tables temporaires qui doivent être uniques pour chaque instance d'un rapport exécuté. Impossible de remplacer les tables d'un autre poste de travail. J'avais besoin des tables temporaires pour travailler avec ma procédure stockée. Merci. –

1

Cela peut être un ancien thread et la réponse est trouvée, mais quand quelqu'un entre dans votre procédure stockée après et voit ce code, il ne comprend vraiment pas. Il y a une autre façon de le faire correctement et il est de simplement déclarer la table comme une variable comme ceci:

DECLARE @temp TABLE 
(
    SomeText1 nvarchar(255), 
    SomeText2 nvarchar(255) 
) 

En outre, ne pas oublier d'enlever DROP TABLE à la fin. PS: Si vous avez vraiment besoin d'utiliser la table temporaire parce que vous devez la créer, vous devez écrire le code donné dans la réponse précédente. J'espère que cela t'aides.

Questions connexes