Thank you for the quick reply and yes, I tested your code and it works fine on my system so, in theory, I should have a syntax error.
Taking my example below, I mad a change...all the way down, the first exec line fails and the second exec line works. I am at a loss as to why.
DECLARE @SELECT varchar(100)
DECLARE @FROM varchar(100)
DECLARE @DynamicSQL1 varchar(8000)
DECLARE @DynamicSQL2 varchar(8000)
DECLARE @DynamicSQL3 varchar(8000)
SET @SELECT = 'SELECT '
SET @FROM = 'FROM DATA_SOURCE'
EXEC (@SELECT + @DynamicSQL1 + @DynamicSQL2 + @DynamicSQL3 + @FROM)
EXEC (@SELECT +''+ @DynamicSQL1 +''+ @DynamicSQL2 +''+ @DynamicSQL3 +''+ @FROM)