A voir également:
- Sql set variable from select
- Win setup from usb - Télécharger - Utilitaires
- Please select boot device - Forum Matériel & Système
- Work from home avis - Forum Vos droits sur internet
- Select boot device première utilisation ✓ - Forum Windows
2 réponses
Ok c'est normal :
Quand tu fais un EXEC, tu es dans un autre environnement d'exécution. Dans ce nouvel environnement, la variable @BRACT n'a jamais été déclarée, ça provoque donc une erreur.
La solution, c'est une table temporaire avec un INSERT...EXECUTE:
DECLARE @BRACT varchar(1)
SET @BRACT = 'N'
CREATE TABLE #TMP (c varchar(1))
INSERT INTO #TMP EXEC ('SELECT blabla FROM Entreprises_Af')
SELECT TOP 1 @BRACT = c from #TMP
PRINT @BRACT
DROP TABLE #TMP
ça n'est pas très élégant, mais je ne vois pas d'autres solution...
Quand tu fais un EXEC, tu es dans un autre environnement d'exécution. Dans ce nouvel environnement, la variable @BRACT n'a jamais été déclarée, ça provoque donc une erreur.
La solution, c'est une table temporaire avec un INSERT...EXECUTE:
DECLARE @BRACT varchar(1)
SET @BRACT = 'N'
CREATE TABLE #TMP (c varchar(1))
INSERT INTO #TMP EXEC ('SELECT blabla FROM Entreprises_Af')
SELECT TOP 1 @BRACT = c from #TMP
PRINT @BRACT
DROP TABLE #TMP
ça n'est pas très élégant, mais je ne vois pas d'autres solution...
Tu peux pouvoir retourner une colonne dont le nom est stocké dans @variable, c'est ça ?
DECLARE @requete nvarchar(4000)
SET @variable = 'Identifiant'
SET @requete = 'SELECT '+@variable+' FROM CLIENTS'
EXEC(@requete)
ça devrait passer :-)
DECLARE @requete nvarchar(4000)
SET @variable = 'Identifiant'
SET @requete = 'SELECT '+@variable+' FROM CLIENTS'
EXEC(@requete)
ça devrait passer :-)
Merci :)
Mais en fait, je me suis mal expliquée, et c'est plus compliqué que cela.
Voici ce que je veux faire :
DECLARE @variable varchar(15), @requete varchar(255)
SET @variable = '@BRACT'
DECLARE @BRACT varchar(1)
SET @BRACT = 'N'
SET @requete = 'SELECT ' + @variable + ' FROM Entreprises_Af '
PRINT @requete
EXEC(@requete)
Mais ça ne marche pas !!!! Voilà ce que cela me donne :
'La variable '@BRACT' doit être déclarée.'
Mais elle est déclarée !!!!
Mais en fait, je me suis mal expliquée, et c'est plus compliqué que cela.
Voici ce que je veux faire :
DECLARE @variable varchar(15), @requete varchar(255)
SET @variable = '@BRACT'
DECLARE @BRACT varchar(1)
SET @BRACT = 'N'
SET @requete = 'SELECT ' + @variable + ' FROM Entreprises_Af '
PRINT @requete
EXEC(@requete)
Mais ça ne marche pas !!!! Voilà ce que cela me donne :
'La variable '@BRACT' doit être déclarée.'
Mais elle est déclarée !!!!