【问题标题】:SSDT SQL SERVER PROJECT(DACPAC)SSDT SQL 服务器项目(DACPAC)
【发布时间】:2018-01-31 09:29:35
【问题描述】:

我想使用 DACPAC 部署我的所有 SQL Server 脚本。我导入了数据库,我想在 SQL Server 中进行更改并提交 SQL Server 项目并创建 dacpac 并在 VSTS 中执行 dacpac。我希望将脚本移动到多个环境,每个环境都有自己的登录名/用户。所以当我删除安全文件夹下的所有登录名时,我不想考虑用户/登录名。从项目中删除登录后,它会引发很多未解决的引用。删除它的最佳方法是什么?

【问题讨论】:

  • 您是否仍有与这些登录名/用户相关联的用户或角色成员资格?查看未解决的引用并清理它们。一旦你摆脱了错误的引用,你应该能够构建。
  • peter Schott,我里面只有桌子。它与用户没有任何参考。如何查找表是否在引用用户
  • 如果您从数据库/脚本导入它,您会在模型中看到它。或者只是在该项目的 SQL 中搜索任何 CREATE USER 类型的语句。您应该能够双击任何错误,它应该会将您带到项目中的违规 SQL 语句。

标签: sql sql-server-data-tools dacpac


【解决方案1】:

考虑通过在 publish.xml 中提供用于部署 dacpac 的连接字符串来部署您的 dacpac

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>dbname</TargetDatabaseName>
<DeployScriptFileName>dbname.sql</DeployScriptFileName>
<TargetConnectionString>Data Source=<name>;user:<ussrname>;password:<password></TargetConnectionString>
<BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
<DropObjectsNotInSource>False</DropObjectsNotInSource>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
<ItemGroup>

</ItemGroup>
</Project>

【讨论】:

  • 我想将 Drop object not in source 设置为 true,但我想排除其中的一些表,如何在发布文件中进行设置?我为此发布了一个问题,您对此有什么想法吗stackoverflow.com/questions/49230286/…
猜你喜欢
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多