我在SSMS v17.9.1中的数据库表中添加了几列。我右键单击新列之一,以“生成生成更改脚本”,但此功能已被禁用。因此,我进入选项并确保已选中此选项。...
工具>选项>设计器>自动生成更改脚本
我重新启动了SSMS,但仍处于禁用状态。知道为什么吗?我创建了3列,并希望创建一个更改脚本以将这些列添加到生产数据库中。
谢谢!
答案 0 :(得分:0)
我不确定为什么它(自动生成更改脚本)仍然对您禁用。我在下面确实喜欢,而且我可以创建更改脚本。
在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现在可以在使用设计器时生成用于创建和/或修改任何表的脚本。
对此进行测试:
让我们确认用于创建新表的脚本生成。
示例:
单击“是”保存脚本,系统将提示您指定位置。 *默认情况下,文件名将是表的名称,例如“ 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
如果您不想保存脚本,则单击“否”,单击“否”将不会回滚已实现的更改,但不会保存脚本。