El primer método se basa en la variable, por lo que la respuesta es no para el primero.
Pero puede usar fácilmente el segundo enfoque sin una variable, solo necesita modificarlo ligeramente:
SELECT
SUBSTRING(
(SELECT ';' + strContract FROM tblContractMail FOR XML PATH('')),
2,
2147483647
)
Como puede ver, el separador va antes el objeto. Como resultado, comienza a cortar la cadena desde el segundo carácter, omitiendo el punto y coma inicial. El especificador de longitud no tiene que ser precisamente la longitud menos uno, puede especificar cualquier número bastante grande y la función devolverá todo, desde el segundo carácter hasta el final. En este caso el máximo int
se ha especificado el valor.