Вопросы и ответы по MS SQL Server

  Все выпуски  

Вопросы и ответы по MS SQL Server


Информационный Канал Subscribe.Ru


Вопросы и ответы по MS SQL Server

Выпуск No. 24 от 2003-11-06

Вопрос : Как для всех процедур сделать одинаковые установки QUOTED_IDENTIFIER и ANSI_NULLS?

Ответ:
Указанные установки хранятся в таблице sysobjects в колонке status.

Состояние выставленных QUOTED_IDENTIFIER и ANSI_NULLS хранится в соответствующих битах:
SET ANSI_NULLS ON

0100000000000000000000000000000 = 536870912

SET QUOTED_IDENTIFIER ON
1000000000000000000000000000000 = 1073741824

Оба параметра
1100000000000000000000000000000 = 1610612736

Перед изменением необходимо выставить опцию, разрешающую изменения системных таблиц для сервера. А затем использовать битовые операции | или ^.

В следующем ниже коде показано, как для всех хранимых процедур выставить SET QUOTED_IDENTIFIER ON и SET ANSI_NULLS ON :
EXEC sp_configure 'allow updates', 1

RECONFIGURE WITH OVERRIDE
GO

update sysobjects
set status = status | 1610612736
where xtype = 'P' and status >= 0
GO

EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO

Таким же образом можно выставить установки для представлений и функций.
Генеральный спонсор рассылки - ООО "Софтоматика"
Надеюсь, Вы нашли эту информацию полезной. Вопросы, предложения и пожелания шлите на адрес sql@likor.ru
С уважением, Сергей Кошкин.
Обсудить этот выпуск можно на Форуме рассылки

Архив рассылки смотрите на сайте Рассылки http://sql.softmatics.ru/
Рейтинг@Mail.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное