you should set the inner (in @SQL) '@CheckQuantity' as OUTPUT. try this:
DECLARE @CheckQuantity INT
declare @ParmDefinition nvarchar(100)
declare @SQL nvarchar(100)
SET @ParmDefinition = N'@CheckQuantity INT OUTPUT'
SET @SQL = N'SET @CheckQuantity= 12'
PRINT @SQL
EXEC [dbo].sp_executesql @SQL, @ParmDefinition,@CheckQuantity=@CheckQuantity OUTPUT;
PRINT @CheckQuantity
and see here:
http://technet.microsoft.com/en-us/library/ms188001.aspx[
^]