Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 с ХП сбивается ANSII NULLs = true  [new]
Турист
Member

Откуда:
Сообщений: 506
с ХП периодически сбивается
ANSII NULLs = true
становится равной
false

Как бы её закрепить в
True
навсегда?
28 фев 13, 10:20    [13992450]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Glory
Member

Откуда:
Сообщений: 104751
The Database Engine saves the settings of both SET QUOTED_IDENTIFIER and SET ANSI_NULLS when a Transact-SQL stored procedure is created or modified.
28 фев 13, 10:22    [13992462]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Турист
Member

Откуда:
Сообщений: 506
я знаю что должна сохранять....а у меня чё-то не сохраняется. завтра погляжу, сохранилось ли..
28 фев 13, 10:25    [13992479]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Glory
Member

Откуда:
Сообщений: 104751
Турист
я знаю что должна сохранять....а у меня чё-то не сохраняется.

Потому что в коннекте, где выполняется создание, совсем другие настройки ?

Сообщение было отредактировано: 28 фев 13, 10:27
28 фев 13, 10:26    [13992490]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Турист
Member

Откуда:
Сообщений: 506
ага. в настройках сервера:
tools - options - query execution - sql server - ansi:
set ansi_nulls = false


создал ХП. потом сделал alter этой ХП и поставил там SET ANSI_NULLS ON:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER procedure pro1
...


а на следующий день смотрю - а у ХП опять стоит ANSI_NULLS = false
28 фев 13, 10:35    [13992509]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Glory
Member

Откуда:
Сообщений: 104751
Турист
а на следующий день смотрю - а у ХП опять стоит ANSI_NULLS = false

Чудес не бывает

Турист
ага. в настройках сервера:
tools - options - query execution - sql server - ansi:

Это настройки клиентского приложения по имени SQL Server Managament Studio
28 фев 13, 10:38    [13992526]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Турист,

Проверяйте значения create_date, modify_date в sys.procedures. Может, кто-то (или что-то) перекомпилировал процедуру после вас.
28 фев 13, 10:39    [13992531]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Турист
Member

Откуда:
Сообщений: 506
Всё понял. Спасибо.
Сам стормозил. В процессе разработки я ХП не изменил, а пересоздал. Вот она и создалась с текущими настройками сервера.
Отбой.
28 фев 13, 10:56    [13992620]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Glory
Member

Откуда:
Сообщений: 104751
Турист
Вот она и создалась с текущими настройками сервера.

У сервера нет никаких "текущих настроек"
Есть SET настройки у каждой базы. Причем это настройки по-умолчанию, т.е. когда клиент при создании коннекта ничего не задает сам
А клиент легко может задавать такие настройки

например
The SQL Server Native Client ODBC driver and SQL Server Native Client OLE DB Provider for SQL Server automatically set ANSI_NULLS to ON when connecting. This setting can be configured in ODBC data sources, in ODBC connection attributes, or in OLE DB connection properties that are set in the application before connecting to an instance of SQL Server. The default for SET ANSI_NULLS is OFF.

Сообщение было отредактировано: 28 фев 13, 11:02
28 фев 13, 11:02    [13992650]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Турист,

Плюс к сказанному Glory — посмотрите при помощи профайлера, что происходит при открытии нового окна запроса в SSMS. На сервер посылается некий набор команд, среди которых — различные установки уровня сессии, например (снял со своего SSMS):
SET ROWCOUNT 0
SET TEXTSIZE 2147483647
SET NOCOUNT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ARITHABORT ON
SET LOCK_TIMEOUT -1
SET QUERY_GOVERNOR_COST_LIMIT 0
SET DEADLOCK_PRIORITY NORMAL
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET ANSI_NULLS ON
SET ANSI_NULL_DFLT_ON ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET CURSOR_CLOSE_ON_COMMIT OFF
SET IMPLICIT_TRANSACTIONS OFF

Собственно, этими настройками вы и управляете, открывая "tools - options - query execution - sql server".
28 фев 13, 11:11    [13992716]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Турист
Member

Откуда:
Сообщений: 506
Спасибо
28 фев 13, 11:24    [13992792]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
_katon_
Member

Откуда:
Сообщений: 14
Glory
У сервера нет никаких "текущих настроек"

Фраза ввел в ступор на минут 5 (Мой маленький мирок рухнул в тартарары). Всегда казалось, что изменяя например "Server authentication" с "Window Authentication mode" на "SQL Server and Windows Authentication mode" я изменю настройки именно SQL server-а. А тут безапелляционное "никаких"!
1 мар 13, 11:53    [13998185]     Ответить | Цитировать Сообщить модератору
 Re: с ХП сбивается ANSII NULLs = true  [new]
Glory
Member

Откуда:
Сообщений: 104751
_katon_
Фраза ввел в ступор на минут 5 (Мой маленький мирок рухнул в тартарары). Всегда казалось, что изменяя например "Server authentication" с "Window Authentication mode" на "SQL Server and Windows Authentication mode" я изменю настройки именно SQL server-а. А тут безапелляционное "никаких"!

Потому что это ответ к цитате.
1 мар 13, 11:55    [13998207]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить