Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка в функции  [new]
Valushka
Member

Откуда:
Сообщений: 148
Есть функция:
Create FUNCTION dbo.Un_str(@id INTEGER, @Tabl_name varchar)
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @Result NVARCHAR(4000)
SET @Result = ''
SELECT @Result = @Result + [name_kod] + ', '
FROM @Tabl_name
WHERE [kod] = @id
RETURN RTRIM(@Result)
END

и есть ошибка:
Server: Msg 137, Level 15, State 2, Procedure Un_str, Line 11
Must declare the variable '@Tabl_name'.

Подскажите, в чем проблема?
30 ноя 05, 15:00    [2126205]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Вообще то это динамика - https://www.sql.ru/faq/faq_topic.aspx?fid=104
А динамика в UDF запрещена.
30 ноя 05, 15:01    [2126217]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
В том, что нет такого синтаксиса select.
30 ноя 05, 15:01    [2126219]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
Гавриленко Сергей Алексеевич
В том, что нет такого синтаксиса select.

И хто Вам такое сказал?????
А так

declare @tab  table (f1 int,f2 varchar(10))
select * from @tab

2 Valushka пишите процедуру или пользуйтесь временными таблицами.
30 ноя 05, 15:06    [2126265]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Timon
Гавриленко Сергей Алексеевич
В том, что нет такого синтаксиса select.

И хто Вам такое сказал?????

Bol
< table_source > ::=
table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]
| view_name [ [ AS ] table_alias ] [ WITH ( < view_hint > [ ,...n ] ) ]
| rowset_function [ [ AS ] table_alias ]
| user_defined_function [ [ AS ] table_alias ]
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| < joined_table >


И где здесь про переменные типа varchar?
30 ноя 05, 15:10    [2126300]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
FAQ
30 ноя 05, 15:15    [2126339]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Slider_spb
Member

Откуда:
Сообщений: 802
Да, и в функции конечно, динамику использовать нельзя...
30 ноя 05, 15:17    [2126355]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
2Гавриленко Сергей Алексеевич
Да, про varchar ни слова, но
конструкция типа
select * from @tab
допустима. а уж какого типа @tab это уже другой вопрос.
30 ноя 05, 15:24    [2126403]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в функции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Timon
2Гавриленко Сергей Алексеевич
Да, про varchar ни слова, но
конструкция типа
select * from @tab
допустима. а уж какого типа @tab это уже другой вопрос.

Вот синтаксис как раз и определяет, какого типа д.б. @tab.
30 ноя 05, 15:48    [2126591]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить