Есть ли способ установить ansi_nulls для нескольких хранимых процедур одновременно, написав скрипт и не внося изменений в системные таблицы? - PullRequest
0 голосов
/ 16 апреля 2019

У меня около 100 хранимых процедур с отключенным ansi_nulls, и я пытаюсь включить его.Один из способов, с помощью которого я могу перейти к каждой хранимой процедуре и установить свойство> options> ansi_nulls ON, также можно изменить каждый из них с ansi_nulls ON и скомпилировать его.Но это очень много времени для сотен SP.

Я хотел бы, чтобы у меня был способ написать сценарий, чтобы изменить их с помощью ansi_nulls и выполнить его в том же сценарии, не касаясь какой-либо системной таблицы.Ну, я могу использовать sys-таблицы, чтобы просто запросить SP, чтобы перечислить их, которые мне нужно изменить.

Я ценю вашу помощь, заранее спасибо.

1 Ответ

1 голос
/ 16 апреля 2019

Что бы я сделал, и это, конечно, не занимает много времени:

  1. В SQL Server Management Studio щелкните правой кнопкой мыши базу данных в обозревателе объектов, перейдите к Задачам и сгенерируйте сценарии
  2. Выберите «Выбрать конкретные объекты базы данных», отметьте «Хранимые процедуры» и нажмите «Далее»
  3. Значение по умолчанию должно быть хорошим (один файл) на экране «Задать параметры сценариев», за исключением того, что вам нужно выбрать вывод файла. Нажмите Next, а затем Next снова. Для создания файла потребуется минута или пять.
  4. Откройте текстовый файл / файл SQL, сгенерированный в достойном редакторе, таком как Notepad ++.
  5. Масса заменить CREATE PROCEDURE на ALTER PROCEDURE
  6. Если в сценарии было создано SET ANSI_NULLS OFF, замените SET ANSI_NULLS OFF на SET ANSI_NULLS ON.
  7. Если SET ANSI_NULLS OFF не был создан, замените ALTER PROCEDURE на SET ANSI_NULLS ON\r\nGO\r\nALTER PROCEDURE, где \ r \ n, конечно, является комбинацией перевода строки возврата каретки. Если ваш текстовый редактор не может создавать CrLF, найдите лучший текстовый редактор.

Текстовый файл теперь должен быть хорошо выполнен, чтобы исправить проблему. Проверьте это, прежде чем запускать все это. Кроме того, обязательно сохраните резервную копию исходного сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...