- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 SQL Server 数据库项目中有许多时态表。今天,我将我的 SSDT 升级到最新版本,并且在构建项目时出现以下时态表错误。例如,我有一个时态表 UseCase,它有一个名为 UseCase_HISTORY 的历史表。
看起来像是代码分析问题。如果我在构建时禁用代码分析,则构建时不会出现错误。
我正在使用 VS2015 和 VS2017。两者都有相同的问题。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1292,5): Error: SQL72039: The substring is out of the bounds for script MSSQL::dbo.UseCase_HISTORY.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1292,5): Error: MSB4018: The "SqlStaticCodeAnalysisTask" task failed unexpectedly.
Microsoft.Data.Tools.Schema.SchemaModel.ScriptCacheException: The substring is out of the bounds for script MSSQL::dbo.UseCase_HISTORY.
at Microsoft.Data.Tools.Schema.SchemaModel.ScriptCache.CheckAndGetSubstring(String cacheIdentifier, Int32 startOffset, Int32 length, CachedString value)
at Microsoft.Data.Tools.Schema.SchemaModel.ScriptCache.GetScript(String cacheIdentifier, Int32 startOffset, Int32 length)
at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSourceInformation.ParseSource()
at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSourceInformation.get_ScriptDom()
at Microsoft.SqlServer.Dac.Model.SqlSchemaModelObjectService.GetOriginalSourceFragment(TSqlObject tSqlObject)
at Microsoft.SqlServer.Dac.TSqlModelUtils.TryGetFragmentForAnalysis(TSqlObject tSqlObject, TSqlFragment& fragment)
at Microsoft.SqlServer.Dac.CodeAnalysis.SqlRuleExecutionContext.get_ScriptFragment()
at Microsoft.SqlServer.Dac.CodeAnalysis.Rules.Design.DataTypeCompatibilityRule.Analyze(SqlRuleExecutionContext context)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.TryExecuteSingleRule(RuleDescriptor ruleDescriptor, SqlRuleExecutionContext executionContext)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.ExecuteSingleRule(RuleDescriptor ruleDescriptor, SqlRuleExecutionContext executionContext, IList`1 errors)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.ExecuteRules(SqlRuleExecutionContext executionContext, IEnumerable`1 rules, IList`1 allErrors)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.ExecuteElementRules(TSqlModel schemaModel, List`1 allErrors, IEnumerable`1 modelElements, ISet`1 rules, List`1 allProblems)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.ExecuteElementRules(TSqlModel schemaModel, List`1 allErrors)
at Microsoft.SqlServer.Dac.CodeAnalysis.Engine.RuleEngine.ExecuteRules(TSqlModel schemaModel, IList`1& errors)
at Microsoft.SqlServer.Dac.CodeAnalysis.CodeAnalysisService.ExecuteProcessRulesStep()
at Microsoft.SqlServer.Dac.CodeAnalysis.CodeAnalysisService.ExecuteStep(Func`1 step)
at Microsoft.SqlServer.Dac.CodeAnalysis.CodeAnalysisService.Execute()
at Microsoft.SqlServer.Dac.CodeAnalysis.CodeAnalysisService.Analyze(TSqlModel model)
at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlStaticCodeAnalysisTask.ExecuteProcessRulesStep()
at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlStaticCodeAnalysisTask.ExecuteStep(Func`1 step)
at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlStaticCodeAnalysisTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
最佳答案
在我将 SSMS/SSDT/DACFX 同时升级到 17.3 版后,我遇到了与您相同的错误(一次完成所有操作是愚蠢的举动)。在我的情况下,我至少已经将这个问题缩小了一吨。
我无法在新项目中完全复制此问题,但它似乎与代码分析设置中的 SR0014 选项直接相关。一旦我关闭该特定选项,一切又开始工作。
我认为您可能已经发现了问题的一部分,临时表/历史表,因为我也广泛使用它们。基于抛出硬错误的特定规则,我们的设计中可能还有另一个共性。您是否还在抛出错误的同一个表上使用用户定义的数据类型?为了一致性和下游使用,我基本上为所有数据类型设置了别名。
我目前的预感是此错误与多个时态表和用户定义的数据类型的组合有关。您能否确认您是否也在使用这些,以及是否取消选中 SR0014 允许您构建您的项目?作为旁注,我的目标是兼容级别为 140 的 Azure SQL 数据库。
如果是这种情况,可能只有极少数用户受到影响,我们需要实际报告这一问题。
关于sql-server - SQL Server 时态表的 SSDT 代码分析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46331311/
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
我是一名优秀的程序员,十分优秀!