Prueba algo como esto. Basicamente se trata de almacenar en una variable los resultados del select para luego ejecutar el contenido de la cadena.
Código:
DECLARE @sql VarChar(8000)
SET @sql = ''
select @sql = @sql +' EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.R OUTINE_NAME)+''','''+@newOwner+''''
from
INFORMATION_SCHEMA.ROUTINES a
where
a.ROUTINE_TYPE = 'procedure' or a.ROUTINE_TYPE = 'function'
AND a.SPECIFIC_SCHEMA = @oldOwner
AND
OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHE MA)+'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0
EXEC sp_executesql @sql