标签: database-project

如何阻止数据库项目的构建

我正在使用 VS2010 premium,并且我的解决方案中有一个数据库项目。我只使用它来存储 SP 和函数脚本,以便我可以将它们保存在 TFS 中并针对我们的开发数据库执行它们。

因此,我编辑了解决方案配置以不构建项目,该项目在构建输出中显示:

------ Skipped Rebuild All: Project: SocratesApplicationDB, Configuration: Debug Any CPU ------ Project not selected to build for this solution configuration 
========== Rebuild All: 15 succeeded, 0 failed, 1 skipped ==========
Run Code Online (Sandbox Code Playgroud)

但是,因为我没有任何引用的表等,我仍然会收到大量 SQL03118 和 SQL04151 错误/警告,这使得很难找到任何“真正的”错误/警告。

有谁知道如何让 VS 完全忽略我的数据库项目并且不尝试验证任何内容(除了将其从我的解决方案中删除)?

build database-project visual-studio-2010 visual-studio

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

使用带有命令行参数的 MSBuild 部署数据库项目失败

我无法通过 msbuild 使用命令行参数部署数据库项目。我想要:

  • 使用发布 xml 配置文件
  • 将连接字符串定义为命令行参数

但这似乎无缘无故地不可能。肯定有一些我遗漏的简单问题。我尝试了以下变体:

msbuild /t:SqlDeploy /p:SqlPublishProfilePath="test.publish.xml" /p:TargetConnectionString="Data Source=..." Database.sqlproj

  • 部署数据库
  • test.pubhlish.xml 中的值被忽略

msbuild /t:Build /t:Deploy /p:SqlPublishProfilePath="test.publish.xml" /p:TargetConnectionString="Data Source=..." Database.sqlproj

  • 部署数据库
  • test.pubhlish.xml 中的值被忽略

msbuild /t:Build /t:Publish /p:SqlPublishProfilePath="test.publish.xml" /p:TargetConnectionString="Data Source=..." Database.sqlproj

  • 失败并出现错误:Deploy Error : The connection string is not valid
  • 使用 test.publish.xml 文件中的值(当 test.publish.xml 包含 TargetConnectionString 时,数据库部署正确)

在所有 3 种情况下,我都使用完全相同的 ConnectionString,因此它不是连接字符串中的拼写错误或错误。我需要使用第三个变体,但这只是失败了..我错过了什么?

deployment msbuild publish database-project sql-server-data-tools

7
推荐指数
0
解决办法
1696
查看次数

无法为无法在数据库中进行身份验证的用户提供参数 PASSWORD

当我登录到 azure 门户时,选择我的 SQL 数据库 -> 工具 -> QueryEditor 并输入:

ALTER USER MyUser WITH Password = '**********'
Run Code Online (Sandbox Code Playgroud)

我收到错误:

无法执行查询。错误:无法为无法在数据库中进行身份验证的用户提供参数 PASSWORD。

我在 MyUser.sql (Build Action=Build) 的 Visual Studio 数据库项目中创建了用户:

CREATE USER [My_User] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo];
Run Code Online (Sandbox Code Playgroud)

为什么我收到消息?

是否可以在数据库项目中创建用户,以便我稍后指定密码(不是源代码)?

sql-server database-project azure-sql-database

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

SSDT模式比较将空白行添加到模式文件

我正在使用Visual Studio 2017中的Schema Compare功能来比较数据库和数据库项目(.sqlproj)。如果我对项目进行了一些更改,它还会向某些模式文件中添加空白行。经过一番调查,我发现我并不是唯一面临此问题的人。从投票数来看,我猜想MS不会很快解决此问题。也许有人为此找到了任何解决方法?

sql-server database-project visual-studio schema-compare sql-server-data-tools

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

SQL Server 数据库项目发出警告“未解析对对象 sp_executesql 的引用”

在存储过程中使用 sp_executesql 时,SQL Server 数据库项目会发出警告“未解析对对象 sp_executesql 的引用”。

database-project

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

数据库项目中的预部署

SQL Server 2008的Visual Studio 2008数据库项目

该项目具有预部署和后部署SQL脚本的占位符.他们工作 - 好吧,大多数时候反正.

该项目有一个Always-Recreate-Database选项:删除现有数据库,每次都创建一个新的热门数据库.

当我部署我的数据库时,整个SQL脚本被放在一起并执行.

我的数据库用于复制,作为部署后脚本的一部分,我将服务器指定为分发,创建复制并向其添加文章.

因此,我必须关闭复制.而这个合理的地方就是预部署.

VS2008很快就擦掉了脸上露出的笑容.如果选中了Always-Recreate-Database,那么它会删除脚本并重新创建数据库,然后放置我的预部署脚本,然后放置其他所有内容.

有没有办法让我更改数据库项目的模板,以便在任何部署发生之前执行预部署SQL脚本.

sql sql-server database-project visual-studio-2008

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

数据库项目需要很长时间才能打开

每当我打开我的SLN下面有多个数据库项目时,打开需要很长时间(10到15分钟).我收到的消息是:

Analyzing database schema. Your database projects will be ready after 23000 operations are completed.
Analyzing database schema. Your database projects will be ready after 45000 operations are completed.
Analyzing database schema. Your database projects will be ready after 59871 operations are completed.
Analyzing database schema. Your database projects will be ready after 63254 operations are completed.
Analyzing database schema. Your database projects will be ready after 87698 operations are completed.
Run Code Online (Sandbox Code Playgroud)

Visual Studio没有告诉我它正在分析什么?

我有什么方法可以加快这个过程吗?

database-project visual-studio-2008

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

可能会发生vsdbcmd数据丢失,但在哪里?

使用vsdbcmd部署我的数据库时:

vsdbcmd.exe /a:Deploy /manifest:MyDatabase.deploymanifest
Run Code Online (Sandbox Code Playgroud)

我得到:

SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur. SQL01268 An error occurred while the batch was being executed.

这是很好的,但它并没有告诉我那里的dataloss会发生.为了找出我必须使用的<DeployToScript>True</DeployToScript>,然后加载脚本以查看:

IF EXISTS (select top 1 1 from [dbo].[MyTable]) RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT

有没有办法让vsdbcmd在直接部署到DB而不必先生成sql时显示此信息?

谢谢

database-project datadude vsdbcmd

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

我可以通过通配符从Visual Studio 2012中的数据库项目中排除某些表和视图吗?

我希望能够在我的Visual Studio 2012数据库项目和开发或生产数据库之间进行模式比较,但是有许多表是动态创建的,我想通过表/视图名称将它们从比较中排除面具.IE"TABLE_%"或"VIEW_%".

有谁知道我如何通过visual studio 2012实现这一目标?如果有必要,我可以将这些项目移动到不同的模式,但是如果我这样做,我会有同样的头痛.

提前致谢.

sql database-project visual-studio-2012

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

在sql postdeployment构建脚本中使用变量?

我希望能够做的是能够在Visual Studio数据库项目中创建一个定义变量的publising xml脚本,该脚本将用于编写脚本.

我的问题是我得到一个错误:"SQL72008:未定义变量DeployType." 如果我没有在后部署脚本中定义变量,就像这样":setvar DeployType"varchar(100)"

当我运行publish.xml时,DeployType参数正确地设置在生成的脚本的顶部但是该值被":setvar DeployType"varchar(100)覆盖.所以为了使这项工作,我需要手动删除运行此脚本之前的行.

所以问题是如何在没有在postdeployment脚本中默认setvar变量的情况下让项目构建并能够发布?

在此输入图像描述

这是我的PostDeployment.sql文件的内容,它不会在没有默认DeployType变量的情况下构建

--The line causing my problems. I would like to skip it somehow.
:setvar DeployType "varchar(100)"

Print 'Always include core'
:r ..\Data\Core\_BaseCore.sql

--Conditionaly add based on DeployType comming from the publishing.xml
IF ('$(DeployType)' = 'A')
BEGIN
:r ..\Data\A\_BaseKnap.sql
END
ELSE IF ('$(DeployType)' = 'B')
BEGIN
:r ..\Data\B\_BaseB.sql
END
Run Code Online (Sandbox Code Playgroud)

这是Database.publish.xml文件中的内容

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <IncludeCompositeObjects>True</IncludeCompositeObjects>
   <TargetDatabaseName>db name</TargetDatabaseName>
   <DeployScriptFileName>Database.sql</DeployScriptFileName>
   <ProfileVersionNumber>1</ProfileVersionNumber>
   <TargetConnectionString>Connection string</TargetConnectionString>
 </PropertyGroup>
 <ItemGroup> …
Run Code Online (Sandbox Code Playgroud)

sql msbuild sqlcmd database-project

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