Stellen Sie zunächst sicher, dass Sie das Erstellungsskript in der richtigen Datenbank ausgeführt haben.
Zweitens verwenden Sie, wie @astander zu erwähnen begann, die Funktionsergebnisse falsch.
Ihre Funktion gibt eine Tabelle zurück, keinen Wert. Sie müssen die Funktion als Teil Ihrer SQL-Anweisungen ausführen, nicht während der Erstellung von Ad-hoc-Abfragen. Zum Beispiel dieser Code:
set @[email protected]+'UNION select items from'+ dbo.FN_Split(@p_SourceText,
@p_Delimeter)+' where orderId ='[email protected]+')'
würde werden:
set @sql = @sql+'UNION select items from dbo.FN_Split(' + @p_SourceText +', ' +
@p_Delimeter + ') where orderId =' + @i + ')'
Nehmen Sie ähnliche Änderungen überall dort vor, wo Sie gerade auf die Funktion verweisen.