标签: sql-server-data-tools

如何在“无头”构建服务器上构建 SSDT 项目?

我有 Windows Server 2012 R2,我想用它.sqlproj在 CI 管道中从 SSDT 构建项目。这是我到目前为止所做的:

  • 安装nuget命令行
  • 安装的nuget包Microsoft.Data.Tools.Msbuild

当我构建我的解决方案时

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe database.solution.sln /p:tv=14 /p:SSDTPath=D:\Nuget\Microsoft.Data.Tools.Msbuild\lib\net40 /p:SQLDBExtensionsRefPath=D:\Nuget\Microsoft.Data.Tools.Msbuild\lib\net40 /p:Configuration=Debug

我收到一条错误消息Could not load file or assembly 'Microsoft.Build.Utilities.Core

我错过了什么想法吗?目标是让构建服务器尽可能轻,因此不想在其上安装 Visual Studio 或 SSDT。

以下是 MsBuild 的完整输出:

Microsoft (R) Build Engine version 4.6.1586.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 18/01/2017 17:00:19.
Project "D:\Jenkins\workspace\hcg\database.solution\database.solution.sln" …
Run Code Online (Sandbox Code Playgroud)

.net sql-server msbuild sql-server-data-tools

3
推荐指数
1
解决办法
2948
查看次数

为什么我的数据没有写入 Excel 目标?SSIS

我创建了一个 SSIS 包,将多行导出到 Excel,通常少于 200 行(包括标题)。当我在 VS2015 调试中运行它时,一切都变成绿色。

在此输入图像描述

我什至像这个问题所说的那样等待。

在此输入图像描述

尽管如此,除了标头之外,没有任何内容到达文件。

我知道数据不多,但我正在尝试将其自动化,因为数据最终会增长,而且我不想一直手动运行它。

有任何想法吗?我正在使用 SQL Server 2012 并使用 VS2015 编写了这个 SSIS 包。

sql-server excel ssis etl sql-server-data-tools

3
推荐指数
1
解决办法
1018
查看次数

如何为 SSDT 项目设置 Azure DevOps Pipeline?

如何为 SSDT 项目设置 Azure DevOps Pipeline?当我尝试 .NET Core 的内置模板时,收到以下错误消息:

2018-11-29T19:04:33.6287133ZD:\ a \ 1 \ s \ XXX \ XXXDB.sqlproj:警告NU1503:跳过项目“D:\ a \ 1 \ s \ XXX \ XXXDB.sqlproj”的恢复。项目文件可能无效或缺少恢复所需的目标。[D:\a\1\s\Krystal.sln]

2018-11-29T19:05:36.8178997ZD:\ a \ 1 \ s \ XXXDB \ XXXDB.sqlproj(60,3):错误MSB4019:导入的项目“C:\ Program Files \ dotnet \ sdk \ 2.1.402 \ Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets”未找到。确认声明中的路径正确,并且该文件存在于磁盘上。

sql-server-data-tools azure-devops

3
推荐指数
1
解决办法
1521
查看次数

SSDT添加要部署的程序集

我有一个旧项目,它使用WCF来为SQL Server提供C#CLR触发器.我总是通过运行脚本来安装它.

但是我决定转到VS 2012上的SSDT项目.我从空数据库导入了项目.WCF功能取决于.net框架中的几个程序集

SMdiagnostics
System.Web
System.Messaging
system.identitymodel
system.identitymodel.selectors
microsoft.transactions.bridge
System.ServiceModel
Run Code Online (Sandbox Code Playgroud)

所以我在项目中引用了这些dll.我还将它们添加到Assemblies子文件夹下的项目中.

但是,当我创建部署脚本时,这些程序集不在其中.

所以当我尝试将脚本发布到数据库时,我收到一个错误.

程序集'system.servicemodel,version = 3.0.0.0,culture = neutral,publickeytoken = b77a5c561934e089.' 在SQL目录中找不到.

如果我尝试创建自定义脚本以将程序集添加到db:

create assembly [SMdiagnostics]
from  'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMdiagnostics.dll'
with permission_set = unsafe
go
Run Code Online (Sandbox Code Playgroud)

我收到错误

错误:SQL70502:程序集源无效.只允许二进制文字.

如何从.NET添加程序集以与我的SSDT项目一起部署?

谢谢.

deployment wcf .net-assembly visual-studio-2012 sql-server-data-tools

2
推荐指数
1
解决办法
2285
查看次数

我们的数据库怎么会导致SqlPackage失败?(SQL72018)

希望其他人遇到过此问题,因为Google只返回9个错误结果!有关SqlPackage的信息似乎还有点不足.

我们目前正在进行迁移到持续部署环境的过程.作为其中一部分,我们使用数据库项目来存储数据库模式,构建服务器使用SqlPackage.exe通过比较每个项目的.dacpac文件与服务器上托管的关联模式模板数据库来生成升级脚本.

到目前为止,我们有六个数据库(还有更多),除了一个之外它们都工作正常,当SqlPackage为'target'数据库建模时会抛出以下错误:

错误SQL72018:无法导入触发器,但源中存在一个或多个这些对象.

我们唯一能想到的是目标数据库的大小问题; 也许SqlPackage内存不足?它是我们拥有的最大的数据库模式,所以它当然是可行的.如果它是SqlPackage的内存限制,我们如何增加它?

我们将开始从目标数据库和源项目中删除对象,以查看我们是否可以确定它是否符合规模或特定架构对象,但同时我们将非常感谢任何想法和建议!

更新

我刚刚尝试从目标数据库中删除所有触发器,现在它将没有错误地吐出升级脚本.接下来我将尝试仅删除其中的一半,看看我是否可以将其缩小到一个特定的触发器.我怀疑它可能只是模式的大小,这可以追溯到SqlPackage内存问题.

database sql-server database-project sql-server-data-tools

2
推荐指数
1
解决办法
2951
查看次数

SSDT交易发布?

使用带有SSDT的msbuild,我尝试过IncludeTransactionalScripts,但它似乎只将每个语句放在一个单独的事务中.是否可以将多个数据库项目作为事务发布?如果没有,我是否至少可以确保每个项目都在交易中发布?

msbuild sql-server-data-tools

2
推荐指数
1
解决办法
1698
查看次数

存储过程更改未反映在dacpac脚本中

我添加了一个新的存储过程并将其添加到我的sqlproj文件中.但是当我生成脚本来发布我的数据库时,更改不会反映在生成的脚本中.

sql-server dacpac visual-studio-2013 sql-server-data-tools

2
推荐指数
1
解决办法
1831
查看次数

SQL Server数据工具忽略架构比较上的重构

我遇到了与此处描述的看似完全相同的问题:模式比较脚本生成忽略了SSDT重构重命名.实质上,SQL Server数据工具的重构组件不用于架构比较/更新.例如,不删除表的名称,而是删除具有旧名称的表,并创建具有新名称的表.不幸的是,我没有看到这个问题的公认答案.我发现了一个类似的问题,似乎是MSDN上同一个人提出的问题; 请参阅:重构重命名脚本生成将忽略重构重命名.同样,它看起来不像是一个可接受的答案.我真的想弄清楚如何使这个功能工作.有没有人有想法?

refactoring-databases schema-compare sql-server-2012 visual-studio-2012 sql-server-data-tools

2
推荐指数
1
解决办法
1332
查看次数

与ssdt持续集成

所以我一直在寻找sql server数据工具(ssdt)并看到一些信息表明它可以与Microsoft数据库项目持续集成,我只是想知道是否有人在实践中实际上是这样做的.

dacpac方法看起来非常吸引人,并且在第一次尝试时似乎可行但不确定.使用最新的ssdt查看visual Studio 2013.

谢谢!

continuous-integration dacpac sql-server-data-tools

2
推荐指数
1
解决办法
1206
查看次数

从SSDT项目部署SQL数据库更改

我有一个Visual Studio SSDT项目,我用它来跟踪所有数据库更改,它都保持在源代码管理下.

从Visual Studio我可以将其部署到我的本地SQL Server以及我们的测试环境.但是出于安全原因,我无法远程连接到我们的生产SQL Server,但我可以将RDP连接到生产服务器.

确保将所有数据库更改部署到生产中的最佳方法是什么?

不确定它对这个问题有多大影响,但我使用的是VS 2015和SQL Server 2012.

sql-server deployment sql-server-data-tools

2
推荐指数
1
解决办法
467
查看次数