[SQL Server] Exécution procédure stockée avec paramètre [Résolu]

Messages postés
3
Date d'inscription
lundi 22 décembre 2008
Dernière intervention
28 août 2009
- 24 avril 2009 à 13:42 - Dernière réponse :
Messages postés
3
Date d'inscription
lundi 22 décembre 2008
Dernière intervention
28 août 2009
- 27 avril 2009 à 11:37
Bonjour Tout le monde,


En fait cela fait deux jours que je cherche une solution mais je suis toujours bloqué .
j'ai créé une procédure stockée avec une requête en paramètre (c'est en fait pour importer plusieurs bases de données de type BD2005, BD2006 .. et les stocker dans une seule base BD):

set ANSI_NULLS ON
GO
set QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[TesT]
as
declare @strSQL NVARCHAR(264)
declare @years varchar(50)
DECLARE Testcursor CURSOR
        FOR SELECT mabase1.dbo.annees.years FROM mabase1.dbo.annees
  
OPEN Testcursor
FETCH NEXT FROM Testcursor
INTO @years
WHILE @@FETCH_STATUS = 0


BEGIN


SET @strSQL  =  N'SELECT monchamp'
             +   'FROM mabase[mailto:mabase'+@years+'.dbo.matable' '+@years+'.dbo.matable']  
             +   'WHERE macolonne = xxxx'
            
            EXEC sp_executeSQL @strSQL 
            
FETCH NEXT FROM Testcursor
INTO @years


END


CLOSE Testcursor
DEALLOCATE Testcursor
GO


alors le problème c'est que lorsque je fais clique droit/exécuter la procédure stockée .. ça me génère une procédure de type: 
 


USE [mabase2]


GO




DECLARE




@return_value


intEXEC



@return_value


=

[dbo]


.

[TesT]



SELECT








'Return Value'





=

@return_valueGO

et des erreurs:




Msg 102, Niveau 15, État 1, Ligne 1




Syntaxe incorrecte vers '.'.



Msg 102, Niveau 15, État 1, Ligne 1



Syntaxe incorrecte vers '.'.



(1 ligne(s) affectée(s))

Je n'ai pas compris la source d'erreur pour chercher la solution convenable.

Merci bcp d'avance .
Cdlt.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
40
Date d'inscription
dimanche 18 janvier 2009
Dernière intervention
2 février 2012
- 26 avril 2009 à 21:09
2
Merci
Salut, quant tu as une erreur de ce type je te conseilles de remplacer le    EXEC sp_executeSQL @strSQL  par un print @strSQL
et tu verra qu'il n'y a pas d'espace entre monchamp et from entre mabase et @year etc....
si l'erreur n'est pas la, recuperes le resultat du print et execute le et tu verra peut etre l'erreur

SET @strSQL  =  N'SELECT monchamp'
             +   'FROM mabase[mailto:mabase '+@years+'.dbo.matable']  
             +   'WHERE macolonne = xxxx'
            
@strSQL  =  SELECT monchampFROM mabase[mailto:mabase @years.dbo.matable]WHERE macolonne = xxxx

greg

Merci gperuch 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de gperuch
Messages postés
3
Date d'inscription
lundi 22 décembre 2008
Dernière intervention
28 août 2009
- 27 avril 2009 à 11:37
0
Merci
Salut,
Merci beaucoup, c'était bien ça la solution
Crdlt.
Commenter la réponse de lost0

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.