我对基线数据库的多个表进行了大量插入操作。我试图在多个 SQL 脚本中为单个表和从属表组织此任务。我需要从主要的部署后 SQL 脚本中按顺序调用脚本。
有任何想法吗?
我正在尝试发布一个数据库项目,该项目还包含一个分区函数.我的目标数据库有不同的(日期)值,我不想修改,虽然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
我在Visual Studio 2013项目中收到以下警告:
SQL71502 - Procedure有一个未解析的对象引用

sql sql-server database-project visual-studio visual-studio-2015
我是第一次设置数据库项目,我正在尝试使用 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) 希望其他人遇到过此问题,因为Google只返回9个错误结果!有关SqlPackage的信息似乎还有点不足.
我们目前正在进行迁移到持续部署环境的过程.作为其中一部分,我们使用数据库项目来存储数据库模式,构建服务器使用SqlPackage.exe通过比较每个项目的.dacpac文件与服务器上托管的关联模式模板数据库来生成升级脚本.
到目前为止,我们有六个数据库(还有更多),除了一个之外它们都工作正常,当SqlPackage为'target'数据库建模时会抛出以下错误:
错误SQL72018:无法导入触发器,但源中存在一个或多个这些对象.
我们唯一能想到的是目标数据库的大小问题; 也许SqlPackage内存不足?它是我们拥有的最大的数据库模式,所以它当然是可行的.如果它是SqlPackage的内存限制,我们如何增加它?
我们将开始从目标数据库和源项目中删除对象,以查看我们是否可以确定它是否符合规模或特定架构对象,但同时我们将非常感谢任何想法和建议!
更新
我刚刚尝试从目标数据库中删除所有触发器,现在它将没有错误地吐出升级脚本.接下来我将尝试仅删除其中的一半,看看我是否可以将其缩小到一个特定的触发器.我怀疑它可能只是模式的大小,这可以追溯到SqlPackage内存问题.
我需要在Visual Studio 2013数据库项目中创建一个包含一些数据库对象的附加模式.我怎样才能做到这一点?
我已经使用 Visual Studio 构建了数据库项目。成功构建后,我尝试使用 .dacpac 文件升级我的数据库。我在这个项目中使用链接服务器。但是我已经提到了所有细节,它仍然给我以下错误。我在数据库项目中设置了变量名。
database sql-server database-project dacpac visual-studio-2013
我在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
我在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
我有很多 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 命令在存储过程语句中不可用
我的数据库项目中有许多文件,AnkhSvn没有提交到存储库.要使用Tortoise清理东西,我可以安全地将它们全部添加到忽略列表中吗?
Projectname.dbmdl
Projectname.dbproj.schemaview
Projectname.dbproj.user
Sql\debug\*
Sql\release\*
Run Code Online (Sandbox Code Playgroud) database-project ×11
sql-server ×7
database ×3
dacpac ×2
ankhsvn ×1
azure-devops ×1
deployment ×1
sql ×1
sqlcmd ×1
t-sql ×1