在我的 SSDT 项目中,为什么会出现此错误?
“对象 __refactorlog 的选择权限被拒绝?”
项目中有一个重构日志项。
我选择从 VS 内部生成发布脚本。
编辑:目标是生产服务器,所以我没有在那里创建表或选择数据的权限,我只需要创建部署脚本,无论如何都没有表 __refactorlog ..
我正在将本地 SQL Server 2014 实例中的数据库与 SSDT 数据库项目进行比较。
我已经做了以前的比较,他们工作得很好。
有时,我还将项目数据库目标从 SQL Server 2014 更改为 SQL Azure,以将更改推送到 SQL Azure 数据库。
在尝试执行最近的比较和更新之前,我确保将项目设置为 SQL Server 2014。
不幸的是,错误消息没有说明哪里出错了,哪里出错了,或者在哪里可以找到更多信息。
此外,错误文本的快速谷歌没有任何结果!之前似乎没有人在互联网上提到过这个错误。
(这不再完全正确。您现在可以在 MSDN 论坛上找到我在何处询问此问题,目前没有任何回复。)
有谁知道此错误消息是否与特定内容有关?或者有没有办法从日志中找出更多信息?我如何调试,理想情况下如何解决这个问题?!
我正在处理一个tsql项目,并且我已经注意到现有代码使用的语法是我以前从未见过的。他们在数据库名称前面加了一个美元符号,以表示完全合格的地址。
这是一个例子:
SELECT c.AccountCode, FROM **[$(SmartAdmin)]**.dbo.Customers c
Run Code Online (Sandbox Code Playgroud)

如果我将数据库名称重命名为SmartAdmin.dbo.Customers,Visual Studio会抛出错误消息,提示“包含对对象的未解析引用”。
这似乎是与Visual Studio相关的事情,任何人都可以解释一下这是什么以及是否可以删除它。
请查看随附的屏幕截图,最后一个来自项目解决方案文件。


我们设置了一个项目,但所有报告都位于 Reports 文件夹中。在我们的 SSRS 上,我们有许多不同的文件夹。
目前,我们制作了一份新报告并发布它,然后我们必须手动将其移动到文件夹中。
我们如何制作新报告并指定我们希望将此报告发布到特定文件夹而不是默认根级别。
我通常使用 SQLPackage 命令提示符路由进行部署,但是这次当我尝试发布到测试服务器时它超时了。
我曾尝试按照博客文章在注册表中设置超时属性,但它也无济于事..
当我尝试调查发布的哪一部分导致延迟时,我可以确定这一点。此查询长时间运行导致发布期间超时。我在开发和生产中运行相同的,它立即运行并返回零行,因为我们在系统中没有任何空间索引..
我试图简化查询,当我运行下面的查询时,它会立即运行并按预期返回一个空的结果集。
SELECT * FROM
[sys].[spatial_indexes] AS [si] WITH (NOLOCK)
INNER JOIN [sys].[objects] AS [o] WITH (NOLOCK)
ON [si].[object_id] = [o].[object_id] INNER JOIN [sys].[spatial_index_tessellations] [sit] WITH (NOLOCK) ON [si].[object_id] = [sit].[object_id] AND [si].[index_id] = [sit].[index_id]
WHERE [si].[is_hypothetical] = 0
Run Code Online (Sandbox Code Playgroud)
但是,当我添加 where 子句时,它会持续运行很长时间。您能帮我找出这里可能出现的问题以及我可以尝试解决的任何可能的修复吗?
AND OBJECTPROPERTY([o].[object_id], N'IsSystemTable') = 0
SELECT * FROM
[sys].[spatial_indexes] AS [si] WITH (NOLOCK)
INNER JOIN [sys].[objects] AS [o] WITH (NOLOCK)
ON [si].[object_id] = [o].[object_id] INNER JOIN [sys].[spatial_index_tessellations] [sit] WITH (NOLOCK) ON [si].[object_id] = …Run Code Online (Sandbox Code Playgroud) sql deployment timeout sql-server-2014 sql-server-data-tools
我的要求是为现有项目创建增量脚本,因此我们将进行大量更改并在其中创建更多表。
我们有开发、质量检查、阶段和生产环境。我只想在开发环境中进行更改,其余环境必须由 Dacpac 使用 VSTS 自动处理。除种子数据外,所有脚本都必须可重新运行。
我可以添加表,但无法alter table在构建模式下的数据库项目中添加语句。我不想导入完整的数据库。Dacpac 不能接受更改声明吗?
由于我必须检查if exists部署后脚本,因此我不想alter在那里使用 use 语句。我怎样才能实现这个目标?
我在 SQLProject 中得到一个未解析的引用,错误发生在创建行上。所有对象都是导致它的原因,因为它们都是在特定模式中创建的。例如,我有在特定模式“win”创建表 [win].[DataSource] 中创建的表。发生错误是因为尝试在“win”模式中创建它 如果我从 create 语句中删除模式,错误就会消失。数据库项目是一个复合项目,包括来自 win 模式的所有工件(存储的过程、表、视图...)。这是我看到的错误示例。
严重性代码描述项目文件行抑制状态错误 SQL71501:过程:[win].[SelectCandidateExamSearch] 有一个未解析的对架构 [win] 的引用。
我使用以下命令来生成并使用 SSDT 发布数据库更改:
"C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml
Run Code Online (Sandbox Code Playgroud)
我想提供数据库连接字符串作为参数,而不是使用publish.xml 中的硬编码连接字符串。无论如何我可以覆盖它吗?
我试过:
"C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe" /Action:Publish /sf:DB.dacpac /Profile:publish.xml /TargetConnectionString:$ConnectionString
Run Code Online (Sandbox Code Playgroud)
其中 $ConnectionString 是来自 Jenkins 的参数。但是,它仍然使用publish.xml 中的ConnectionString。
sql-server continuous-integration jenkins sqlpackage sql-server-data-tools
有没有办法使用其中一项任务在 Azure Devops 管道上创建数据库文件?
我的想法是在代理上创建一个 localdb(使用 VS)并在该数据库文件上运行单元测试(SSDT),就像我使用 VS 所做的那样。我可以创建数据库文件“工具”>“连接数据库”>“Sql 服务器数据库文件”并输入名称。我可以连接到它并运行测试。我似乎无法在 Azure DevOps 管道上执行此操作。
我知道首选方法是分配 Azure SQL 服务器并针对这些服务器运行测试,但数据库非常小,如果我可以针对数据库文件运行这些测试,这似乎是一个更好的主意。
c# unit-testing sql-server-data-tools azure-devops azure-pipelines
我有许多包含 200 多列的非规范化表。这些表位于 SQL Server 中,并且它们通常(如果不总是)具有 varchar(100) 或 nvarchar(100)(字符串)数据类型。但是,大多数列都是整数、浮点数或其他数据类型。我不可能遍历每个表和列并选择数据类型。由于许多原因,包括应用程序兼容性、性能、加入和其他原因,我必须将这些转换为正确的(或至少接近正确的)数据类型。有什么工具可以使用吗?有没有人创建代码来完成这个?它不一定是完美的,但一场势均力敌的比赛就可以了。
我试过什么:
感谢您的帮助。如果您不要求我通过试图说我的设置不好/等来放弃任务,我也很感激。
sql ×3
sql-server ×3
azure-devops ×1
c# ×1
dacpac ×1
deployment ×1
jenkins ×1
sqlpackage ×1
ssis ×1
t-sql ×1
timeout ×1
unit-testing ×1