Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Вызов user defined function в SQL-запросе


Автор: CyraxZ 21.6.2008, 20:57
При попытке выполнить запрос
Код

sqlDataSource.SelectCommand = "SELECT Employee.firstName, dbo.Employees.getDepartmentList(Employee.id) as DepartmentList FROM Employee";

выскакивает ошибка:

Cannot find either column "dbo" or the user-defined function or aggregate "dbo.Employees.getDepartmentList", or the name is ambiguous.

Функция getDepartmentList  возвращает некоторую строку.
Employees - имя базы данных.
Employee - имя таблицы.

Как правильно выполнить вызов user defined function в SQL-запросе?

Автор: 9223000 21.6.2008, 21:45
Попробуйте так:

sqlDataSource.SelectCommand = "SELECT D.[firstName], dbo.getDepartmentList(D.[id]) as [DepartmentList] FROM dbo.[Employee] D";

Должно сработать при условии что таблица Employee и функция getDepartmentLinst находятся в одной БД обозначенной вами Employees

Автор: Magnifico 21.6.2008, 21:54
Employees.dbo.getDepartmentList(Employee.id)  если скалярная функция

а если ф-ция возвращает набор данных то прописывать её после from как таблицу 

select * from getDepartmentList(Employee.id)

Автор: CyraxZ 23.6.2008, 21:44
Спасибо, все заработало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)