powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не создается встроенная функция
10 сообщений из 10, страница 1 из 1
не создается встроенная функция
    #39921792
Фотография dab2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу создать табличную функцию
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION skidki_filialov(@filial INT)
RETURNS TABLE 
AS
RETURN 
(SELECT Skidki.ImahSkidki, skidki_filialov_slave(@filial).ImahProekta
FROM Skidki LEFT JOIN skidki_filialov_slave(@filial) ON Skidki.Tip = skidki_filialov_slave(@filial).Tip);
GO


skidki_filialov_slave() создана нормально, но

SQL Server 2005 пишет ошибку "сообщение: 195, уровень: 15, состояние: 10, процедура: skidki_filialov, строка: 5 [строка начала пакета: 20]
skidki_filialov_slave не является известным имя встроенной функции"
============================================================================================================
"О, сколько нам открытий чудных готовит просвещения дух, и опыт - сын ошибок трудных, и гений - парадоксов друг, и случай - бог изобретатель" (Пушкин, однако).
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921795
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dab2
Код: sql
1.
ON Skidki.Tip = skidki_filialov_slave(@filial).Tip)



ужас.


Используйте алиасы
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921797
Фотография dab2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Код: sql
1.
2.
3.
4.
5.
6.
CREATE FUNCTION skidki_filialov(@filial INT)
RETURNS TABLE 
AS
RETURN 
(SELECT Skidki.ImahSkidki, sfs(@filial).ImahProekta
FROM Skidki LEFT JOIN skidki_filialov_slave(@filial) as sfs ON Skidki.Tip = sfs(@filial).Tip);


Вы мне по существу помогите.
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921799
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dab2
msLex,

Код: sql
1.
2.
3.
4.
5.
6.
CREATE FUNCTION skidki_filialov(@filial INT)
RETURNS TABLE 
AS
RETURN 
(SELECT Skidki.ImahSkidki, sfs(@filial).ImahProekta
FROM Skidki LEFT JOIN skidki_filialov_slave(@filial) as sfs ON Skidki.Tip = sfs(@filial).Tip);



Вы мне по существу помогите.


Выделенное зачем?
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921800
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dab2,

Для пользовательских функций надо обязательно указывать имя схемы перед именем функции. Т.е. скорее всего dbo в вашем случае.

Схему вообще лучше всегда указывать, везде...
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921803
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
Для пользовательских функций надо обязательно указывать имя схемы перед именем функции.


Это вы где вычитали?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create function f1 (@a int)
returns table as return (
	select a = @a 
)
go

create function f2 (@a int)
returns table as return (
	select a
	from f1(@a)
)
go

select *
from f2(1)


drop function f2

drop function f1
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921804
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dab2,

Код: sql
1.
LEFT JOIN skidki_filialov_slave(@filial) ON Skidki.Tip = skidki_filialov_slave(@filial).Tip



Код: sql
1.
LEFT JOIN schemaname.skidki_filialov_slave(@filial) AS A ON Skidki.Tip = A.Tip
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921818
Фотография dab2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION dbo.skidki_filialov(@filial INT)
RETURNS TABLE 
AS
RETURN 
(SELECT Skidki.ImahSkidki, sfs.ImahProekta
FROM Skidki LEFT JOIN ShU1SQL.dbo.skidki_filialov_slave(@filial) as sfs ON Skidki.Tip = sfs.Tip);
GO



Получилось вот так ))
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921828
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
Для пользовательских функций надо обязательно указывать имя схемы перед именем функции.
Только для скалярных.
...
Рейтинг: 0 / 0
не создается встроенная функция
    #39921853
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
dab2,

Для пользовательских функций надо обязательно указывать имя схемы перед именем функции. Т.е. скорее всего dbo в вашем случае.

Схему вообще лучше всегда указывать, везде...


Обязательно только для скалярных функций. Но лучше практики, конечно, требуют указания схем для всех объектов, равно и как алиасов для столбцов.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не создается встроенная функция
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]