создал функцию в SQL Server, но не может вызвать ее из SP? - PullRequest
0 голосов
/ 17 июня 2011

Я создал функцию в своем SQL Server 2008, используя следующий код: http://www.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into-table.aspx

Я вижу ее в своей БД в разделе Программируемость> Функции> Табличные функции> dbo.Split

но когда я пытаюсь позвонить в своем коде SP:

SELECT ItemID
  FROM StagingCategoryItems 
 WHERE ManufacturerID = @ManufacturerID 
   AND CategoryID = @CategoryID
   AND ItemID IN (    
                  dbo.Split(@InIds,',')
                 ) 

я получаю эту ошибку:

Msg 4121, Level 16, State 1, Line 11
Cannot find either column "dbo" or the user-defined function or aggregate "dbo.Split", or the name is ambiguous.

Что мне здесь не хватает?

1 Ответ

4 голосов
/ 17 июня 2011

Вам необходимо использовать функцию в качестве имени таблицы в предложении select, поскольку она является табличной функцией.

Попробуйте это:

SELECT ItemID  
  FROM StagingCategoryItems 
 WHERE ManufacturerID = @ManufacturerID 
   AND CategoryID = @CategoryID  
   AND ItemID IN (SELECT items
                    FROM dbo.Split(@InIds,',')     
                 ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...