Hay otro error, no había reparado en él y es que tu variable contador es de tipo entero (int), por lo tanto no puede ser concatenada, hay que convertirla primero a varchar, de tal manera que quedaría más o menos así
Código SQL:
Ver originalDECLARE @contador INT, @contS INT, @servicio VARCHAR(100), @query VARCHAR(MAX)
SET @contador = 1
SELECT @contS = 5 --COUNT(Uid) FROM VERIFICACION_VENTAS.dbo.Servicios
WHILE (@contador <= @contS)
BEGIN
SET @servicio = '(SELECT Servicio FROM VERIFICACION_VENTAS.dbo.Servicios WHERE Uid = ' + CAST(@Contador AS VARCHAR) + ') T1'
SET @query = 'select * from ' + @servicio
SET @contador = @contador + 1
PRINT @query
END
Para fines de prueba el límite del contador lo estoy poniendo en 5 (sólo habría que quitar la linea comentada del COUNT) y no estoy ejecutando la sentencia, solo la estoy mostrando... También agregué un alias a tu subconsulta, primero prueba esto y después vas agregando las líneas que faltan, de tal manera que puedas determinar más fácilmente donde existen errores.
Saludos
Leo.