powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложный вопрос: OpenRowset и его предопределенные параметры
9 сообщений из 9, страница 1 из 1
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049660
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

ПО: Microsoft SQL Server 2000 SP2, Windows 2000

Преамбула: существует несколько табличных системных функций.
Например, ::fn_dblog(), код которой можно увидеть так:

Код: plaintext
SELECT * FROM syscomments WHERE text like '%fn_dblog%'


Так вот, код ее такой:

Код: plaintext
1.
2.
3.
4.
create function system_function_schema.fn_dblog   
(    @start nvarchar ( 22 ) = NULL,    @end   nvarchar ( 22 ) = NULL   )    
returns table  
as   
return select * from OpenRowset (DBLog, @start, @end)



Вопрос: Почему нельзя создать функцию с таким же телом, но другим именем?
Если точнее, почему сервер протестует против строки (если ее просто попытаться
выполнить):

Код: plaintext
select * from OpenRowset (DBLog, null, null)


То же и по другим вариантам OpenRowset (например, OpenRowset(OpenTapes))

Как же они (функции, представления) были созданы самим сервером?


Удачи
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049821
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А создаваемая функция - системная (system) ?
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049825
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая. Не "ест" даже просто adhoc запрос
Код: plaintext
select * from OpenRowset (DBLog, null, null)
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049827
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книге кажется Ken Henderson упоминалось, что все системные объекты создаются в специальном режиме (опять же кажется). И вроде даже рассказано, как самому создавать такие объекты(то ли трэйсфлаг включался, то ли еще что-то).
Сейчас книжки под рукой нет, приду домой - сверюсь, так ли это
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049885
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По причине отсутствия русской клавиатуры у ноутбука буду цитировать на английском

"1. Enable updates of system tables
sp_configure 'allow updates',1
reconfigure with override

2. Create your function using CREATE FUNCTION command and be sure to create the function in the master database and owner-qualify it with system_function_name. Be sure the functions begins with fn_ and consists only lowercase letters.

3. Set allow updates back.

Note that table-valued system functions must be qualified with double colon regardless of whether you created the function or it was created during the installation process."
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049948
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Glory.

Помогло – при включенной опции ‘allow updates’ функции создаются, одиночный запрос также отрабатывает. Единственное – префикс владельца должен быть, видимо, system_function_schema.

Еще раз благодарю.
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049949
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2jimmers
Собственно, select * from OpenRowset (DBLog, null, null) прекрасно выполняется из QA. Просто нужно выполнять в БД master.
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049954
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexeyvg, Вы не правы, с опцией ‘allow updates’=0 такой запрос не будет работать. А именно такая настройка должна быть на сервере.

Удачи
...
Рейтинг: 0 / 0
Сложный вопрос: OpenRowset и его предопределенные параметры
    #32049959
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2jimmers
Да, конечно system_function_schema

2alexeyvg
Без sp_configure 'allow updates',1 не работает.
У вас наверное просто разрешено обновление системных таблиц при старте.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложный вопрос: OpenRowset и его предопределенные параметры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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