标签: database-project

我可以从 VS 数据库项目的部署后脚本中调用不同的 SQL 脚本吗

我对基线数据库的多个表进行了大量插入操作。我试图在多个 SQL 脚本中为单个表和从属表组织此任务。我需要从主要的部署后 SQL 脚本中按顺序调用脚本。

有任何想法吗?

database deployment database-project visual-studio-2010

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

SSDT - 忽略分区功能更改

我正在尝试发布一个数据库项目,该项目还包含一个分区函数.我的目标数据库有不同的(日期)值,我不想修改,虽然SSDT/SqlPackage总是试图重新创建分区函数,不用说 - 所有使用PF的表.

我检查了以下选项:IgnoreObjectPlacementOnPartitionScheme&IgnorePartitionSchemes(http://msdn.microsoft.com/en-us/library/aa833291 (v=vs.100 ) .aspx)但仍然获得了娱乐尝试.

同时运行VS2012(最新SSDT)和VS2013

我附上了一个示例项目来演示这种行为:http://www.fast-files.com/getfile.aspx? file = 73666

sql-server database-project database-partitioning sql-server-2012-datatools sql-server-data-tools

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

警告SQL71502 - 过程<name>具有对象<name>的未解析引用

我在Visual Studio 2013项目中收到以下警告:

SQL71502 - Procedure有一个未解析的对象引用

警告SQL71502

sql sql-server database-project visual-studio visual-studio-2015

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

数据库项目部署 - 没有提供文件供参考 master.dacpac

我是第一次设置数据库项目,我正在尝试使用 Azure DevOps 进行构建/部署。我正在使用 Azure (windows-2019) 中托管的 MSBuild 任务进行构建。我正在使用在 SQL 服务器上运行的命令行任务从 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140.

在使用 SqlPackage.exe 部署期间,我收到 master 和 msdb 数据库的错误:

No file was supplied for reference master.dacpac; deployment might fail. When C:\Jen_DacpacTest\Artifact\whatever.dacpac was created, the original referenced file was located C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\ENTERPRISE\COMMON7\IDE\EXTENSIONS\MICROSOFT\SQLDB\EXTENSIONS\SQLSERVER\140\SQLSCHEMAS\MASTER.DACPAC.
Run Code Online (Sandbox Code Playgroud)

我认为对 master 和 msdb 的引用是在构建和部署时解决的(因为它是路径的变量),但似乎并非如此。它似乎在构建期间弄清楚 $(DacPacRootPath) 是什么,并对生成到 dacpac 中的 model.xml 文件中的引用进行“硬编码”。proj 文件中的引用如下所示:

<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\140\SqlSchemas\master.dacpac">
      <HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\140\SqlSchemas\master.dacpac</HintPath>
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
    </ArtifactReference>
    <ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\140\SqlSchemas\msdb.dacpac">
      <HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\140\SqlSchemas\msdb.dacpac</HintPath>
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
      <DatabaseVariableLiteralValue>msdb</DatabaseVariableLiteralValue>
    </ArtifactReference>
Run Code Online (Sandbox Code Playgroud)

如果 dacpac 被解压,那么它在 model.xml 文件中的样子如下:

<CustomData Category="Reference" …
Run Code Online (Sandbox Code Playgroud)

database-project sql-server-data-tools azure-devops

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

我们的数据库怎么会导致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
查看次数

如何在Visual Studio 2013数据库项目中添加新架构

我需要在Visual Studio 2013数据库项目中创建一个包含一些数据库对象的附加模式.我怎样才能做到这一点?

database-project visual-studio-2013 sql-server-2014

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

sqlcmd 变量的缺失值

我已经使用 Visual Studio 构建了数据库项目。成功构建后,我尝试使用 .dacpac 文件升级我的数据库。我在这个项目中使用链接服务器。但是我已经提到了所有细节,它仍然给我以下错误。我在数据库项目中设置了变量名。

在此处输入图片说明

database sql-server database-project dacpac visual-studio-2013

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

使用SSDT的数据项目,如何引用另一个数据库而不将其填充到SS Obj Explorer中的同一项目文件夹中

我在Visual Studio中有一个名为AMC的数据库项目。

在AMC中,我有一个视图,该视图引用另一个称为AMC2的数据库(在同一实例中)中的一个对象,该对象在项目中引发错误。错误是无法识别AMC2参考。

因此,我从AMC2获得了dacpac,并将其添加为参考。现在,由于具有已知参考,我的视图脚本不会在项目中引发错误,但是在我的SQL Server对象资源管理器(在Visual Studio中)中,我看到来自另一个AMC2与AMC组合的存储过程和表等。

我如何在AMC数据库项目中引用AMC2,而又不会在AMC项目下的SQL Server对象资源管理器中发生数据库对象混合的情况?

sql-server database-project visual-studio dacpac sql-server-data-tools

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

VS数据库项目主键名称

我在Visual Studio 2015中有一个数据库项目。我想命名主键,但它似乎忽略了任何尝试。虽然可以命名默认约束。

CREATE TABLE [dbo].[Stock]
(
    [Id] INT CONSTRAINT [PK_Stock_Id] NOT NULL PRIMARY KEY, 
    [StockCode] NVARCHAR(6) NOT NULL, 
    [CreatedDate] DATETIME2 CONSTRAINT [DF_Stock_CreatedDate] DEFAULT sysutcdatetime() NOT NULL
)
GO
Run Code Online (Sandbox Code Playgroud)

如果单击主键,它甚至具有name属性,但它是只读的。我得到它只是创建脚本而不是发布到SQL Server,它去除了主键上的单词约束和名称。

sql-server database-project visual-studio visual-studio-2015

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

我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?

我有很多 SQL 在多个存储过程中是相同的。

例如,大多数过程都声明了相同的变量,并在同一个 try catch 块中处理错误。

我想使用该:r命令,以便我可以在一个文件中编写此代码,然后将其导入每个 sp。我可以在构建前和构建后脚本中使用该命令,但无法在普通的“构建”类型数据库对象中使用它。

例子:

在此处输入图片说明

内的 SQL \Shared\CommonVariables

在此处输入图片说明

[p_An_Example]

在此处输入图片说明

错误只是说“SQL46010:\ 附近的语法不正确。”

——

如果我将路径用引号括起来,则错误将在“开始”上替换为一个:

在此处输入图片说明

“SQL46010:BEGIN 附近的语法不正确。”

——

有什么我可以做的事情吗?目前[p_An_Example]具有BuildBuild Action 属性,并\Shared\CommonVariables设置为None.

(我使用的是 Visual Studio 2017,数据库项目指向 2008 数据库,安装了 SQLCMD 等)

编辑:不是重复,因为我确实打开了 SQLCMD 模式...但事实证明 SQLCMD 命令在存储过程语句中不可用

t-sql sql-server sqlcmd database-project visual-studio

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

AnkhSvn忽略数据库项目文件问题

我的数据库项目中有许多文件,AnkhSvn没有提交到存储库.要使用Tortoise清理东西,我可以安全地将它们全部添加到忽略列表中吗?

Projectname.dbmdl
Projectname.dbproj.schemaview
Projectname.dbproj.user
Sql\debug\*
Sql\release\*
Run Code Online (Sandbox Code Playgroud)

ankhsvn database-project visual-studio-2010

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