Contamos con la solución a este conflicto, al menos eso pensamos. Si continuas con alguna pregunta coméntalo, que sin dudas
Solución:
CONCAT
se introdujo en SQL Server 2012; no hay forma de que funcione en SQL Server 2008 R2. De la documentación:
Tampoco hay forma de que falle en 2012+, incluso con el nivel de compatibilidad. Así que haz que tu gente revise SELECT @@VERSION;
en ambos servidores; lo encontrarás donde CONCAT
falla es < 11. Para que su código sea compatible con versiones anteriores, deberá usar el estándar string operador de concatenación (+
). No sé cómo harías esto con una función escalar, a menos que siempre hayas usado el exacto mismo número de cadenas de entrada y cambias tu código para usar dbo.CONCAT()
en vez de CONCAT()
(habrá escenarios en los que importa, además, si su función hace algo que el nativo no hace, desea un comportamiento consistente si / cuando actualiza). Así que no recomendaría ese enfoque. Es posible que también deba agregar NULL
manejo y otros cambios menores (imposible decirle cómo cambiar su script existente exactamente, si no podemos verlo).
Puede usar la función ODBC CONCAT de esta manera:
SELECT fn CONCAT('foo ', 'test')
El problema con esto es que esta función solo te permite dos parámetros a la vez. Entonces, a menos que quieras usar más de dos como este:
SELECT fn CONCAT('foo ', fn CONCAT('test ', 'buddy'))
También podría usar el operador ‘+’.
Recuerda dar recomendación a este post si si solucionó tu problema.