Comment get des valeurs en utilisant Dynamic SQL

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