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

ПО: 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
11.09.2002, 17:58:50
    #32049821
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный вопрос: OpenRowset и его предопределенные параметры
А создаваемая функция - системная (system) ?
...
Рейтинг: 0 / 0
11.09.2002, 18:04:39
    #32049825
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный вопрос: OpenRowset и его предопределенные параметры
Любая. Не "ест" даже просто adhoc запрос
Код: plaintext
select * from OpenRowset (DBLog, null, null)
...
Рейтинг: 0 / 0
11.09.2002, 18:12:52
    #32049827
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный вопрос: OpenRowset и его предопределенные параметры
В книге кажется Ken Henderson упоминалось, что все системные объекты создаются в специальном режиме (опять же кажется). И вроде даже рассказано, как самому создавать такие объекты(то ли трэйсфлаг включался, то ли еще что-то).
Сейчас книжки под рукой нет, приду домой - сверюсь, так ли это
...
Рейтинг: 0 / 0
12.09.2002, 01:23:33
    #32049885
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный вопрос: OpenRowset и его предопределенные параметры
По причине отсутствия русской клавиатуры у ноутбука буду цитировать на английском

"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
12.09.2002, 11:12:15
    #32049948
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный вопрос: OpenRowset и его предопределенные параметры
Спасибо, Glory.

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

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

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

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


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