12 votes

L'assistant de configuration de TableAdapter n'aime pas les tables temporaires dans SP

J'ai une procédure stockée que j'utilise dans un ensemble de données pour générer un rapport dans ReportViewer.

Cette PS utilise des tables temporaires pour stocker des valeurs intermédiaires, afin que celles-ci puissent être utilisées dans un calcul à la fin de la PS.

Les tables temporaires sont toutes abandonnées proprement à la fin de la SP.

Je peux exécuter le SP dans SSMS sans problème et il renvoie les données que j'attends.

Cependant, lorsque j'utilise l'assistant de configuration de TableAdapter pour mettre à jour mon xsd dans VS2012, je reçois l'erreur suivante Invalid object name '#Held' (où #Held est le nom de l'une des tables temporaires).

Qu'est-ce qui se passe ?

26voto

Bat_Programmer Points 1670

La réponse indiquait aquí fonctionne parfaitement, pour des raisons inconnues.

Il suffit de placer le code ci-dessous après la procédure stockée, après la partie AS du SP.

IF 1=0 BEGIN
    SET FMTONLY OFF
END

1voto

Tom Studee Points 4346

Il y a quelques problèmes connus avec les tables #temp et les adaptateurs de table.

Certaines personnes ont contourné ce problème en sélectionnant explicitement les noms de colonnes, par exemple :

SELECT column1, column2, ... from #temptable plutôt que SELECT * (si vous le faites)

Vous pouvez également essayer d'utiliser un table plutôt qu'une table temporaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X