SSMS: «Генерировать скрипт изменения» отключен, хотя опция включена - PullRequest
0 голосов
/ 29 января 2019

Я добавил несколько столбцов в таблицу БД в SSMS v17.9.1.Я щелкнул правой кнопкой мыши по одному из новых столбцов, чтобы « создать скрипт изменения », но он был отключен.Итак, я вошел в параметры и убедился, что это было проверено ....

Инструменты> Параметры> Дизайнеры> Автогенерация сценариев изменений

Я перезапустил SSMS, но этовсе еще отключен.Есть идеи почему?Я создал 3 столбца и хочу создать сценарий изменения, чтобы добавить эти столбцы в производственную базу данных.

Заранее спасибо!

1 Ответ

0 голосов
/ 31 января 2019

Я не уверен, почему он (Автогенерация сценариев изменения) все еще отключен для вас.Я сделал, как показано ниже, и я могу создать скрипт изменения.

В SQL Server Management Studio (SSMS) есть опция для автоматического создания скриптов для ваших изменений, выполненных через графический интерфейс.но по умолчанию эта опция у нас будет отключена.

Чтобы включить параметр:

From the SSMS menus click on "Tools"  
Click on "Options..."
Click on "Designers"
Check the checkbox "Auto generate change scripts" as highlighted below

После установки указанного флажка SSMS теперь может генерировать сценарии для создания и / или изменения любой таблицы, когдаВы используете конструктор.

Тестирование этого:

Давайте подтвердим генерацию сценария для создания новой таблицы.

  • В SSMS выберите базу данных и разверните дерево
  • Щелкните правой кнопкой мыши папку таблиц внутри и выберите «Новая таблица».
  • Появится дизайнер для создания новой таблицы.
  • Создайте один столбец для этой таблицы. Я создал столбец с именем TestCol1 как nchar (10)
  • Сохраните новую таблицу, присвойте таблице имя и нажмите OK
  • Появится другое окно, которое включает в себя фактический скрипт для создания этой новой таблицы, как показано ниже:

Пример:

enter image description here

  • Нажмите «Да», чтобы сохранить сценарий, и вам будет предложено указать местоположение.* Имя файла по умолчанию будет именем таблицы, например «tableName.sql», но его можно изменить на что угодно.

    • Чтобы предотвратить возможные проблемы потери данныхВы должны подробно изучить этот сценарий, прежде чем запускать его вне контекста конструктора базы данных.

      BEGIN TRANSACTION
      SET QUOTED_IDENTIFIER ON
      SET ARITHABORT ON
      SET NUMERIC_ROUNDABORT OFF
      SET CONCAT_NULL_YIELDS_NULL ON
      SET ANSI_NULLS ON
      SET ANSI_PADDING ON
      SET ANSI_WARNINGS ON
      COMMIT
      BEGIN TRANSACTION
      GO
      ALTER TABLE dbo.Table_1 SET (LOCK_ESCALATION = TABLE)
      GO
      COMMIT
      select Has_Perms_By_Name(N'dbo.Table_1', 'Object', 'ALTER') as ALT_Per, Has_Perms_By_Name(N'dbo.Table_1', 'Object', 'VIEW DEFINITION') as View_def_Per, Has_Perms_By_Name(N'dbo.Table_1', 'Object', 'CONTROL') as Contr_Per 
      
  • Если вы не хотите сохранять сценарий, тонажмите «Нет», нажав «Нет», вы не сможете откатить внесенные изменения, но скрипт не будет сохранен.

...