Den första metoden bygger på variabeln, så svaret är nej för den första.
Men du kan enkelt använda den andra metoden utan en variabel, bara du behöver modifiera den något:
SELECT
SUBSTRING(
(SELECT ';' + strContract FROM tblContractMail FOR XML PATH('')),
2,
2147483647
)
Som du kan se går avgränsaren före saken. Som ett resultat börjar du klippa strängen från det andra tecknet och utelämna det inledande semikolonet. Längdspecifikationen behöver inte vara exakt längden minus ett, du kan ange vilket ganska stort tal som helst, och funktionen kommer att returnera allt från det andra tecknet till slutet. I det här fallet är det maximala int
värde har angetts.