Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Странные конструкции системных хранимых процедур.  [new]
Strange%%Marks
Guest
В системных хранимых процедурах присутствуют конструкции с недопустимым синтаксисом. Например:

EXEC %%ServerConfiguration
EXEC %%System


Есть ли где-нибудь описание этих конструкций? Возможно ли выполнить эти конструкции?
25 янв 17, 11:39    [20143530]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
КусокАналитика
Guest
Strange%%Marks,
EXEC [%%ServerConfiguration]
EXEC [%%System]


?
25 янв 17, 11:41    [20143553]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Strange%%Marks,

sp_configure
25 янв 17, 11:45    [20143582]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
Strange%%Marks
Guest
TaPaK, да, в частности встречаются там. Но этот код не выполнится, если Вы попытаетесь создать свою копию sp_configure. Все вопросы сохранились.
25 янв 17, 11:48    [20143595]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31431
Strange%%Marks
В системных хранимых процедурах присутствуют конструкции с недопустимым синтаксисом. Например:

EXEC %%ServerConfiguration
EXEC %%System



Есть ли где-нибудь описание этих конструкций? Возможно ли выполнить эти конструкции?
Это в МС так хардкодят, типа спец строки в спец местах, как нормальный код они не выполняются.
Иногда возможно выполнение такого кода из соего кода, если его пометить как системный и положить в мастер-базу. Но не всегда.
25 янв 17, 12:09    [20143744]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
Strange%%Marks
В системных хранимых процедурах присутствуют конструкции с недопустимым синтаксисом
Если синтаксис недокументирован еще не значит, что он недопустим. А системные процедуры на то и системные, чтобы использовать недокументированные фичи, недоступные простым смертным.
Strange%%Marks
Возможно ли выполнить эти конструкции?
Зачем?
25 янв 17, 12:11    [20143763]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
Strange%%Marks
Guest
alexeyvg
Иногда возможно выполнение такого кода из соего кода, если его пометить как системный и положить в мастер-базу. Но не всегда.


Можно написать поподробнее? Например, создал процедуру sp_MyProcedure в master, пометил её системной с помощью sp_MS_marksystemobject. В процедуре попытался выполнить %%-конструкцию через динамический SQL (иначе не удаётся создать процедуру). По-прежнему, ошибка вида "Incorrect syntax near '%'".
25 янв 17, 12:32    [20143874]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37056
Чтобы такое работало, раньше нужен был контекст базы mssqlsystemresource, который можно было получить только если сервер запущен в однопользовательском режиме.
25 янв 17, 12:51    [20143983]     Ответить | Цитировать Сообщить модератору
 Re: Странные конструкции системных хранимых процедур.  [new]
Strange%%Marks
Guest
Гавриленко Сергей Алексеевич
Чтобы такое работало, раньше нужен был контекст базы mssqlsystemresource, который можно было получить только если сервер запущен в однопользовательском режиме.


Спасибо, в указанном Вами контексте эти конструкции действительно работают. Мой вопрос закрыт.
25 янв 17, 13:56    [20144409]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить