EM & SET QUOTED_IDENTIFIER ON
Dennizz
Дата: 06.12.2002 09:14:24
Объясните мне pls на основание чего EM принимает решение о вставке в
скриптуемый объект в начале SET QUOTED_IDENTIFIER ON, а в конце
SET QUOTED_IDENTIFIER OFF. Причем у половины объектов в начале
тоже стоит SET QUOTED_IDENTIFIER OFF. В настройках сервера
QUOTED_IDENTIFIER выключены. Если создавать объекты из QA,
предварительно сделав в данном коннекшине SET QUOTED_IDENTIFIER OFF,
то все путем... но вот как задать поведение для EM?
Мне нужно, чтобы объекты создаваемые из EM _все_ имели
SET QUOTED_IDENTIFIER OFF.
В 7.0 это лечилось перезапуском EM... В sql2k sp3 уже не получается :(
Glory
Дата: 06.12.2002 18:57:22
BOL
"The settings of both SET QUOTED_IDENTIFIER and SET ANSI_NULLS are saved when a stored procedure is created or altered. These original settings are enabled when the stored procedure is executed, and any client session settings are restored afterward."
Dennizz
Дата: 08.12.2002 09:29:21
Дык понятно... и я про то же.
Дело в том, что исторически я привык набирать и сохранять sp и триггеры не из QA, а из EM. Из QA - все понятно - дал в текущем соединении SET QUOTED_IDENTIFIER OFF и все. А вот как принудить EM работать с SET QUOTED_IDENTIFIER OFF при создании/измении sp/триггера?
Откуда он берет данные установки?
Glory
Дата: 09.12.2002 15:12:40
Откуда он берет данные установки?
Вполне возможно, что эти установки "зашиты" в самом EM. Во всяком случае в системном реестре ничего похожего не нашел
Dennizz
Дата: 10.12.2002 09:30:41
Я где-то читал, про то, что установки сессии по умолчанию зависят от того, через
какого провайдера лезет клиент. Типа для db-library одно, для ole db другое.
Может в эту сторону копать?
Хотя с другой стороны опять же непонятно как привязать EM к нужному провайдер :(
Glory
Дата: 10.12.2002 12:48:53
Провайдер провайдером, но каждое приложение может изменить SET параметры после установления коннекта.
Пример - QA . В Tools-Options-Connection Properties можно задать установки которые будут применены после установления коннекта.
В Control Panel - Administrative Tools - ODBC Manager при создании DSN-а так же можно указать установки соединения и в частности и QUOTED IDENTIFIER.
Dennizz
Дата: 10.12.2002 15:58:33
Да знаю я это ;)
Мне нужно заставить EM работать с SET QUOTED_IDENTIFIER OFF.
Про остальное и так понятно...
guest2002
Дата: 10.12.2002 16:27:29
А если у сервера установить в Default Connection Options ?
alexeyvg
Дата: 10.12.2002 18:12:54
2Dennizz
ЕМ перед созданием скрипта делает запрос:
select OBJECTPROPERTY(object_id(N'[dbo].[Процедура]'), N'ExecIsQuotedIdentOn'), OBJECTPROPERTY(object_id(N'[dbo].[Процедура]'), N'ExecIsAnsiNullsOn')
и на основании этого вставляет нужный текст.
При создании новой процедуры ЕМ выполняет SET ANSI_NULLS OFF перед выполнением скрипта создания
А SET QUOTED_IDENTIFIER - не выполняет. Он остаётся такой, каким был. Соответственно, если в процессе работы происходят изменения этого свойства в текущем коннекте, то и процедуры создаются то так, то эдак.
Dennizz
Дата: 11.12.2002 09:10:33
Угу, теперь понятно... Вопрос снят с повестки.
Всем спасибо, будем привыкать к QA ;)