Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Функции пользователя в MSSQL 2000 / 10 сообщений из 10, страница 1 из 1
17.01.2002, 07:25
    #32020853
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
Создал функцию, но чтоб она вызывалась, надо перед ее именем написать владельца (dbo), хотя вроде это не обязательных параметр.
Хотелось бы узнать, на что это может влиять, и можно ли без этого параметра обойтись?
...
Рейтинг: 0 / 0
17.01.2002, 07:57
    #32020860
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
это обязательный параметр
...
Рейтинг: 0 / 0
17.01.2002, 08:08
    #32020865
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
CREATE FUNCTION [ owner_name. ] function_name

Меня интересует именно owner_name. Во всех примерах в книге пишется просто имя функции.
И еще хотелось бы узнать, на что повлияет точное указание владельца (до этого я нигде не указывал его) ?
...
Рейтинг: 0 / 0
17.01.2002, 08:23
    #32020867
Функции пользователя в MSSQL 2000
> CREATE FUNCTION [ owner_name. ] function_name

Это надо интерпретировать так: в операторе "CREATE FUNCTION" имя владельца можно опустить. Тогда системой будет автоматически подставлен текущий владелец. К использованию функций это не относиться. Там нужно явно (зачем-то, почему-то) указывать владельца.
...
Рейтинг: 0 / 0
17.01.2002, 08:58
    #32020871
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
Т.е. если пишу там dbo, то все будет нормально?
...
Рейтинг: 0 / 0
17.01.2002, 09:27
    #32020875
Функции пользователя в MSSQL 2000
Нет никакого смысла. Если ты член группы db_owner, то система сама присвоит владельцем 'dbo', а если не член, то система и не позволит задать владельцем 'dbo'.
...
Рейтинг: 0 / 0
17.01.2002, 09:39
    #32020877
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
Так в том то и дело, что если там ничего не писать, он говорит что нет такой функции, а если вписать, то все работает.
...
Рейтинг: 0 / 0
17.01.2002, 09:57
    #32020878
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
По порядку

1. У каждого объекта есть владелец
2. При создании объектов, в данном случае функции, если не указывается владелец, сервер автоматически делает владельцем пользователя, создающего объект
3. Для того, что владельцем объекта автоматически становился dbo нужно
- быть саими dbo
- входить в группу db_owner
4. При поиске объекта, если не задано имя владельца, а только имя объекта, сервер сначала ищет объект current_user.object , потом dbo .object . Если такой объект не найден, то выдается ошибка.

Резюме
Если вы создали функцию пользователем, не являющися dbo и членом группы db_owner и не указали явно владельцем dbo, то ваша функция имеет имеет вид super_user.myfunction . Поэтому любой другой пользователь, пытающийся обратиться к этой функции без указания владельца, будет получать ошибку.
...
Рейтинг: 0 / 0
17.01.2002, 14:02
    #32020912
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
Тогда вопрос, почему вызов хранимых процедур происходит нормально, без указания владельца?

Кстати еще вопрос. Если у меня стоит запуск хранимой процедуры, можно ли ей в качестве параметра указывать функцию? У меня он жаловался именно на эту точку, отделяющую имя функции от владельца.
...
Рейтинг: 0 / 0
18.01.2002, 07:19
    #32020955
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функции пользователя в MSSQL 2000
Синтаксис у процедур не требует указания владельца, а у функции требует. Так написано в BOL. Почему так сделано - не знаю. Если бы узнал - вряд ли бы стал от этого счастливей.

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


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