сохранение результата из функции tsql в хранимой процедуре - PullRequest
1 голос
/ 04 июня 2009

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

Я вызываю функцию в хранимой процедуре, которая возвращает таблицу из 2 столбцов со значением. Это значение, которое я хочу присвоить переменной 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 '('.

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

Любая помощь будет с большим удовольствием получена.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 04 июня 2009

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

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

DECLARE @TEAM VARCHAR(100)
SET @TEAM = (SELECT DISTINCT value FROM fn_split(@foldernarrative, '-') WHERE idx = 0)
0 голосов
/ 08 июня 2009

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

0 голосов
/ 04 июня 2009

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

0 голосов
/ 04 июня 2009

Как отметил Дариом, вам также нужно добавить владельца объекта, если fn_split - функция

DECLARE @TEAM VARCHAR(100)
SET @TEAM = (SELECT DISTINCT value FROM dbo.fn_split(@foldernarrative, '-') WHERE idx = 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...