Can you use a variable name to supply the value instead of just pure text? If so, how about:
DECLARE @VER AS nvarchar(255) = @@VERSION;
DECLARE @TXT AS varchar(3);
SELECT @TXT = 'MsDtsServer' + CASE WHEN SUBSTRING(@VER, CHARINDEX('SQL Server 20', @VER) + 11, 4) > '2005' THEN '100' ELSE '' END;
EXEC master..xp_servicecontrol 'QueryState', @TXT;
Steve (aka sgmunson) 🙂 🙂 🙂
Rent Servers for Income (picks and shovels strategy)