J'ai une requête comme ci-dessous, qui exécute selon l'exigence.
DECLARE @count varchar(20) SET @count = (SELECT COUNT(*) FROM emp) PRINT 'Employee Count: '+@count SELECT @count
Mais, si je veux faire la même chose avec l'utilisation si SQL dynamic je ne reçois pas le résultat souhaité. Mon code SQL dynamic est comme ci-dessous:
DECLARE @count varchar(10) DECLARE @sqlQuery varchar(500) SET @sqlQuery = 'SET '+@count +'= (SELECT COUNT(*) FROM emp)' EXEC (@sqlQuery) PRINT 'Employee Count: '+@count SELECT @count
Ce code me donne une valeur NULL en sortie.
Qu'est-ce qui devrait être fait? Est-ce que quelqu'un peut m'aider à dire où je me suis trompé?
Essayez d'append le paramètre de sortie pour –
DECLARE @SQL NVARCHAR(500) , @OutputNum VARCHAR(10) SET @SQL = N'SELECT @OUT = COUNT(1) FROM dbo.emp' EXEC sys.sp_executesql @SQL , N'@OUT INT OUTPUT' , @OUT = @OutputNum OUTPUT PRINT 'Employee Count: '+ @OutputNum SELECT @OutputNum
Sortie –
Employee Count: 103