Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Есть процедура, в ней идет работа с xml.
Для этого для нее нужно установить QUOTED_IDENTIFIER в ON.
Несколько раз уже получилось, что этот параметр вроде как бы ни с того и ни с сего установился в OFF.
Понятно, что чудес не бывает, и вопрос - в каком направлении искать причину этого поведения?
Специально никто ее скорее всего не перекомпилировал.
Для базы этот параметр стоит OFF.
14 ноя 13, 11:48    [15126735]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
QUOTED_IDENTIFIER в ON,

В коде самой хранимки пропишите:
set quoted_identifier on;
Ну и все остальные сеты, которые там нужны, тоже.
14 ноя 13, 11:51    [15126766]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Glory
Member

Откуда:
Сообщений: 104760
When a stored procedure is created, the SET QUOTED_IDENTIFIER and SET ANSI_NULLS settings are captured and used for subsequent invocations of that stored procedure.

When executed inside a stored procedure, the setting of SET QUOTED_IDENTIFIER is not changed.
14 ноя 13, 11:52    [15126772]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Ennor Tiegael
QUOTED_IDENTIFIER в ON,

В коде самой хранимки пропишите:
set quoted_identifier on;
Ну и все остальные сеты, которые там нужны, тоже.

штука в том, что они там все прописаны, как и надо.
руками правлю в ON - через некоторое время OFF.
14 ноя 13, 11:54    [15126787]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Ennor Tiegael
QUOTED_IDENTIFIER в ON,

В коде самой хранимки пропишите:
set quoted_identifier on;
Ну и все остальные сеты, которые там нужны, тоже.

или имеете в виду "в коде" - это после "as"?
14 ноя 13, 11:56    [15126802]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Ennor Tiegael
QUOTED_IDENTIFIER в ON,

В коде самой хранимки пропишите:
set quoted_identifier on;
Ну и все остальные сеты, которые там нужны, тоже.

в самом коде, как и пишет Glory эффекта не будет, проверил.
14 ноя 13, 12:01    [15126846]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Glory
Member

Откуда:
Сообщений: 104760
QUOTED_IDENTIFIER в ON
Несколько раз уже получилось, что этот параметр вроде как бы ни с того и ни с сего установился в OFF.

QUOTED_IDENTIFIER для процедуры меняется только при ее изменении.
Если вы привыкли делать изменения скажем в окне EM, то вы не можете контролировать, какие SET-ы гуи использует в своем коннекте
14 ноя 13, 12:04    [15126878]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Glory
QUOTED_IDENTIFIER в ON
Несколько раз уже получилось, что этот параметр вроде как бы ни с того и ни с сего установился в OFF.

QUOTED_IDENTIFIER для процедуры меняется только при ее изменении.
Если вы привыкли делать изменения скажем в окне EM, то вы не можете контролировать, какие SET-ы гуи использует в своем коннекте
ну я в окне EM компилирую так:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Proc1]
	@PrintList xml
as
...
клиент работает.
потом через какое-то время не работает, смотрю в том-же EM, а там уже SET QUOTED_IDENTIFIER OFF. Вот за счет чего такое может происходить?
14 ноя 13, 12:12    [15126937]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Glory
Member

Откуда:
Сообщений: 104760
QUOTED_IDENTIFIER в ON
Вот за счет чего такое может происходить?

За счет того, что кто-то выполнил ALTER proc с другой установкой SET QUOTED_IDENTIFIER
14 ноя 13, 12:16    [15126983]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
QUOTED_IDENTIFIER в ON
Guest
Glory
QUOTED_IDENTIFIER в ON
Вот за счет чего такое может происходить?

За счет того, что кто-то выполнил ALTER proc с другой установкой SET QUOTED_IDENTIFIER
Т.е. только такой вариант - кто-то или сам, или скриптом явно сделал ALTER?
На инициативу сервера по тем или иным причинам грешить точно не надо?
14 ноя 13, 12:23    [15127056]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Glory
Member

Откуда:
Сообщений: 104760
QUOTED_IDENTIFIER в ON
На инициативу сервера по тем или иным причинам грешить точно не надо?

Вы про что ? Про то, что сервер сам делает alter процедуре ?

QUOTED_IDENTIFIER в ON
Т.е. только такой вариант - кто-то или сам, или скриптом явно сделал ALTER?

Процедура изменяется только командой ALTER.
"Кто-то сам" тоже делает это командой ALTER. Просто он не знает этого. Потому что работает в каком нибудь гуи
14 ноя 13, 12:27    [15127089]     Ответить | Цитировать Сообщить модератору
 Re: непонятно почему меняется параметр QUOTED_IDENTIFIER  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
QUOTED_IDENTIFIER в ON
или имеете в виду "в коде" - это после "as"?
Да, лучше всего сразу после as, но где-нибудь до return.

Т.к. xml требует не только этот сет, то у меня обычно вот такой стандартный набор:
set nocount, ansi_nulls, ansi_padding, ansi_warnings, concat_null_yields_null, quoted_identifier, arithabort on;
set numeric_roundabort, xact_abort, implicit_transactions off;
14 ноя 13, 14:19    [15128404]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить