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'+@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.