2010-10-29 5 views
2

J'ai une requête SQL qui a deux parties 1) Qui appelle un proc stocké et remplit les données dans la table temporaire (en utilisant la fonction openXML) 2) L'autre partie de sql qui se joint avec cette table et le jeu de résultatscomment sélectionner un jeu de données particulier depuis sql

Actuellement, lorsque j'exécute le processus stocké, il me renvoie les deux résultats. Mais il ne devrait retourner que le deuxième jeu de résultats et non le jeu de résultats de la table temporaire.

Mon code Visual Studio sélectionne par défaut le premier jeu de résultats alors que le jeu de résultats requis est le second. Le sql est la suivante:

@SQL = 'Create table #TempTable (YearEntry int, Quarter int) insert into #TempTable exec CreateTableFromXML @YearQuarterList ' + 
    ' Select * from ABCD inner join #TempTable T on T.YearEntry = A.Year ' 

Il doit retourner que toutes les colonnes d'une table alors qu'il retour précis ou chiffré

#TempTable and all the columns from A Table. 

Quelqu'un peut-il s'il vous plaît me guider comment obtenir que le jeu de résultats qui retourne tous les colonnes d'une table.

grâce

+0

Peut-être que vous devriez spécifier quelles colonnes vous voulez dans votre Select. Le '*' indique toutes les colonnes des deux tables. Essayez 'Select A. *' ou nommez explicitement les colonnes dans le select. – NealB

Répondre

1

Au lieu de

' Select * from ABCD inner join #TempTable T on T.YearEntry = A.Year ' 

utilisation

' Select ABCD.* from ABCD inner join #TempTable T on T.YearEntry = A.Year ' 

Vous spécifiez tout de la table ABCD, plutôt que tout de la jointure.

+1

+1 trop vite pour moi! –

+0

Salut ... actuellement je sélectionne ABCD.Prodname, ABCD.Address d'ABCD. – user491434

+0

Je ne fais pas Select * à partir d'ABCD mais je sélectionne les colonnes requises mais il me montre encore deux ensembles de résultats et mon code Visual Studio prend par défaut le premier ensemble de résultats. – user491434

0

Le premier résultat défini est-il simplement le message (# row(s) affected) résultant de l'instruction INSERT? Essayez d'ajouter un SET NOCOUNT ON; comme première déclaration de votre lot et voyez si cela vous aide.

Questions connexes