Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nie można znaleźć kolumny „dbo”, funkcji zdefiniowanej przez użytkownika lub agregatu „dbo.FN_Split” lub nazwa jest niejednoznaczna

Najpierw upewnij się, że uruchomiłeś skrypt tworzenia we właściwej bazie danych.

Po drugie, jak zaczął wspominać @astander, używasz wyników funkcji nieprawidłowo.

Twoja funkcja zwraca tabelę, a nie wartość. Funkcję należy wykonać jako część instrukcji sql, a nie podczas budowania zapytań ad hoc. Na przykład ten kod:

 set @[email protected]+'UNION select items from'+ dbo.FN_Split(@p_SourceText,
                  @p_Delimeter)+' where orderId ='[email protected]+')'

stałoby się:

set @sql = @sql+'UNION select items from dbo.FN_Split(' + @p_SourceText +', ' +
                  @p_Delimeter + ') where orderId =' + @i + ')'

Wprowadź podobne zmiany wszędzie tam, gdzie aktualnie odwołujesz się do funkcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dostarczyć ciąg z listą wartości do instrukcji IN?

  2. Jak wstawić jedną kolumnę do innej kolumny w tej samej tabeli w SQL Server

  3. Zapytanie SQL, aby znaleźć ostatni dzień bieżącego miesiąca?

  4. Jeden ze zidentyfikowanych elementów miał nieprawidłowy format — Microsoft.SqlServer.Type

  5. Wydajność SQL Server 2008 FILESTREAM