在更新脚本的生成中包含默认约束名称

Posted

技术标签:

【中文标题】在更新脚本的生成中包含默认约束名称【英文标题】:Include default constraint names in generation of update script 【发布时间】:2012-10-31 16:28:53 【问题描述】:

我在 Visual Studio 2012 中使用 SQL Server 数据库项目,在比较和生成更新脚本时遇到以下问题:

在 Visual Studio 中,我添加了一个带有默认约束的列,例如:

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] NOT NULL DEFAULT N''

很遗憾,默认约束的名称在以下情况下没有出现:

比较(架构比较)我的项目与实际数据库 生成更新脚本(从Schema Compare中)

创建的更新脚本包含以下脚本(无约束名称):

ALTER TABLE [dbo].[ExistingTable]
    ADD [NewColumn] NVARCHAR (50) DEFAULT N'' NOT NULL;

这似乎是一个重大疏忽,所以我想知道在哪里可以找到魔术开关以在所有数据库操作中包含默认约束的名称。

【问题讨论】:

【参考方案1】:

我认为您的定义中的顺序可能不正确。尝试将“NOT NULL”部分移动到行尾而不是约束定义的中间。

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] DEFAULT N'' NOT NULL

【讨论】:

我也犯了同样的错误。谢谢,NOT NULL 显然必须在最后。

以上是关于在更新脚本的生成中包含默认约束名称的主要内容,如果未能解决你的问题,请参考以下文章

如何不在生成的命名空间中包含 Visual Studio 项目文件夹名称

修正或添加字段默认值约束的名称

js sort 数组中包含数组怎么排序

批处理脚本 - dir /b 在输出文件中包含目录名称和空行

Lucene 高级搜索

c程序中包含的头文件的默认路径是啥?