Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Kann weder die Spalte „dbo“ noch die benutzerdefinierte Funktion oder das Aggregat „dbo.FN_Split“ finden oder der Name ist mehrdeutig

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.