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

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

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

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

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

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

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


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