- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎 SSDT 没有发布 COLLATION 列,即使它在比较过程中检测到变化。
出现一个问题,如果您更改表中特定列的列 COLLATION,并尝试发布更改,SSDT 将在创建发布脚本时忽略它。
这是在 msdn forums 上描述的类似问题, 很久以前检测到的,现在还在转载。
我一直在使用 SSDT 版本 14.0.60629.0SSDT 是否仍然存在此问题,或者是否有有效的解决方法?
更新此问题仅适用于使用用户定义数据类型的列。
更新 (添加了重现步骤,并更正了问题文本):
重现步骤:
1. 从数据库开始并记下排序规则
(这是我的,我的开发服务器上的一个数据库):
当前 COLLATION 设置是:
2.然后更改数据库排序规则。
USE master;
ALTER DATABASE [<db_name>] COLLATE SQL_Latin1_General_CP1250_CS_AS
新的 COLLATION 设置将是:
之前的列排序规则 (SQL_Latin1_General_CP1_CI_AS) 将保留,SSDT 比较机制将无法检测到任何更改。
如果我尝试在此列上创建外键约束,引用另一个表中另一个新填充的列,这将导致出现错误消息,因为在不知道真正排序规则的情况下构建了来自比较的发布脚本。< br/>例如,这会产生错误,因为列排序规则不同:
ALTER TABLE [FCT].[Inventory] WITH NOCHECK
ADD CONSTRAINT [FK_Inventory_Source] FOREIGN KEY ([Source]) REFERENCES [DIM].[Source] ([SourceCode]);
最佳答案
确保在发布设置中启用“脚本数据库整理”(选项卡:常规)
来源:https://dba.stackexchange.com/questions/128002/ssdt-publish-window-what-does-checkbox-enable-mean
那么它可能需要多次发布
首先它在数据库级别执行,然后在表/列级别执行
关于sql-server - SSDT 不发布列 COLLATION 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899927/
SSDT 和 SSDT-商业智能有什么区别? 我已经安装了 SQL Server 2017,然后继续下载 Business Intelligence Development Studio 但发现它被
我想知道是否有人知道是否有任何方法可以将部署历史记录到文件中? 我们有一个数据库项目,但我在 SSDT 中找不到这个选项,而且在上次部署发生时我在数据库中也找不到。 最佳答案 没有直接的选项,但您可以
我有一个旧项目,它使用 WCF 与 SQL Server 的 C# CLR 触发器。我总是通过运行脚本来安装它。 但我决定在 VS 2012 上继续研究 SSDT 项目。我已经从空数据库中导入了项目。
我是 SQL Server 数据库工具的新手,可能对部署后脚本正在做什么做出了不正确的假设。如果我错了,请纠正我。 据我所知,部署后脚本预计将在每次部署后运行,而不仅仅是一次部署。 如果我想让部署后脚
我在做一个 tsql 项目,我注意到现有代码使用了一种我以前从未见过的语法。他们在数据库名称前放置了一个美元符号以表示完全合格的地址。 这是一个例子: SELECT c.AccountCode, F
我通常使用 SQLPackage 命令提示路由进行部署,但这次当我尝试发布到测试服务器时超时。 我曾尝试按照博客文章在注册表中设置超时属性,但它也无济于事.. https://blogs.msdn.m
使用 msbuild 和 SSDT,我尝试了 IncludeTransactionalScripts,但它似乎只将每个语句放在一个单独的事务中。 是否可以将多个数据库项目作为事务发布? 如果没有,我至
Visual Studio 2019 - SSDT 16.0。 我在 Dev 数据库中有 8 个表,这些表最初是临时的。我删除了表语法的时间部分,项目拒绝构建。我删除了数据库并在 SSMS 中为这些表
在我们的 SSDT 项目中,我们有一个巨大的脚本,其中包含许多用于从旧系统导入数据的 INSERT 语句。使用 sqlcmd 变量,我希望能够有条件地将文件包含到部署后脚本中。 我们目前正在使用 :r
我有两个 SSDT 项目。 Database1 引用 Database2。 部署 Database1 时,Table2(来自 Database2)按预期部署。那是因为当我部署时,复选框“包括复合对象”
我们一直在使用VS 2017 Shell版本进行BI开发几个月没有问题,但今天它意外停止并自行重新启动。重启后,我们得到一个错误: Could not load file or assembly 'M
我正在使用 SQLPackage.exe 实用程序和数据库项目的发布配置文件来运行对 SQL Server 数据库的更改。 根据我的理解,这是部署过程: 预部署脚本 主要部署 部署后脚本 我在发布配置
我有一个用于 Azure SQL 数据库的 sqlproj XML。我想将包含多个表的数据库部署到特定架构中,该架构也是使用此构建创建的。如何指定用于 CREATE SCHEMA [schema-na
在较低级别的环境中部署后,我希望对一些表进行一些行计数。我有一个项目,将数据库部署到 SQL,并将一些数据加载到其中。我想验证该表现在已填充数据。我已阅读有关创建单元测试的 MSDN,但我有一些悬而未
标题说明了一切,但未提供更多详细信息。当我将 VS2015 中的架构比较工具用于我的 SSDT 项目和服务器上的数据库时。用户返回的比较结果总是不同的。我检查了它所说的差异,但环境之间没有任何差异。
我在 VS 2017 中创建的 SQL Server 数据库项目中收到许多“未解析的对象引用”错误。 这些错误都指向“sys”。对象。 我从 master 数据库中添加了一个 .dacpac 引用,包
我正在尝试发布一个数据库项目,该项目还包含一个分区函数。 我的目标数据库有不同的(日期)值,我不想修改这些值,尽管 SSDT/SqlPackage 总是尝试重新创建分区函数,不用说 - 所有使用 PF
我们可以使用 TFS&SSDT 创建 SQLServer 部署脚本,但是有没有办法创建回滚脚本,以便我们可以回滚部署?谢谢 最佳答案 由于 SSDT(和类似产品)都通过将项目中的架构与实时数据库进行比
我在 Visual Studio 2013 中使用 SSDT。 我为开发服务器创建了一些发布前和发布后脚本。预部署脚本从表中清空数据并重新设置所有自动标识字段。部署后脚本使用静态数据和示例数据填充表。
我在 SQL 项目中有一个 PostDeployment 脚本,它在发布时运行项目中的许多其他脚本: :r .\Scripts\Script1.sql :r .\Scripts\Script2.sql
我是一名优秀的程序员,十分优秀!