【问题标题】:SSMS: "Generate change script" disabled even though option is enabledSSMS:即使选项已启用,“生成更改脚本”也已禁用
【发布时间】:2019-01-29 15:26:23
【问题描述】:

我在 SSMS v17.9.1 的数据库表中添加了几列。我去右键单击新列之一以“生成更改脚本”,但它被禁用了。所以,我进入了选项并确保选中了这个....

工具 > 选项 > 设计器 > 自动生成更改脚本

我重新启动了 SSMS,但它仍然被禁用。知道为什么吗?我创建了 3 列,并希望创建一个更改脚本以将这些列添加到生产数据库。

提前致谢!

【问题讨论】:

  • 已禁用或不存在?
  • 我启用/选中了“自动生成更改脚本”。当我在列上右键单击(在设计中)“生成更改脚本”选项在那里,但被禁用。

标签: sql-server sql-server-2012 ssms


【解决方案1】:

我不确定为什么它(自动生成更改脚本)仍然为您禁用。我确实喜欢下面,我可以创建更改脚本..

在 SQL Server Management Studio (SSMS) 中,有一个选项可以自动为您通过 GUI 完成的更改生成脚本。但默认情况下我们将禁用此选项。

启用该选项:

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)
  • 保存新表并为表命名,然后单击“确定”
  • 将弹出另一个窗口,其中包含用于创建此新表的实际脚本,如下所示:

例子:

  • 单击“是”保存脚本,系统将提示您指定位置。 * 文件名默认为表名,如“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 
      
  • 如果您不想保存脚本然后单击“否”,单击“否”将不会回滚已实施的更改,但不会保存脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多