2009-06-04 6 views
1

У меня возникли проблемы с хранимой процедурой, которую я пишу для SQL Server.сохранение результата из функции tsql в хранимой процедуре

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

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value fn_split(@foldernarrative, '-') WHERE idx = 0) 

Функция работает сама по себе, но при добавлении к моей процедуры магазина я получаю синтаксические ошибки, такие как

Server: Msg 170, Level 15, State 1, Line 94 
Line 94: Incorrect syntax near '('. 

Я совсем новичок в этом, и я не могу понять, почему это проблема.

Любая помощь была бы благосклонно получена.

Спасибо.

ответ

2

Я думаю, что вам не хватает ключевого слова FROM при выборе из вашей таблицы функции.

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

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value FROM fn_split(@foldernarrative, '-') WHERE idx = 0) 
+0

Ох ... это одно из тех утра ... –

+0

Это происходит со всеми нами! Время для другого кофе :-) – dariom

0

Как dariom указал, но вы также должны добавить владельца объекта, если fn_split функция.

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value FROM dbo.fn_split(@foldernarrative, '-') WHERE idx = 0) 
0

Конечно, этот код будет работать, только если ваша функция не может возвращать более одной строки.

0

Вы можете добавить IsNull вокруг @foldernarrative в том случае, если вы ожидаете, что когда-либо пропустите NULL, либо намеренно, либо случайно.

Смежные вопросы