Getting Result of Dynamic SQL into a Variable for Sql-Server

When you create a dynamic query and execute it. You want to get a result or value in variable then it is not possible when you use EXEC (@SQL).

You can achieve it by using EXEC SP_EXECSQL,

  1. DECLARE @SQLCOMMAND NVARCHAR(1000)  
  2. DECLARE @NAME VARCHAR(75)  
  3. DECLARE @COUNTS INT  
  4. SET @NAME = 'TEST'  
  5. SET @SQLCOMMAND = 'SELECT @CNT=COUNT(*) FROM MSTEMPLOYEE WHERE FIRST_NAME = @NAME'  
  6. EXECUTE SP_EXECUTESQL @SQLCOMMAND, N'@NAME NVARCHAR(75),@CNT INT OUTPUT', @NAME = @NAME, @CNT=@COUNTS OUTPUT  
  7. SELECT @COUNTS AS COUNTS