问题标签 [sqlproj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
164 浏览

asp.net-mvc-4 - 如果在 MVC 项目中使用 sqlproj,为什么要使用 mdf

我建立了一个 MVC 4 项目并创建了一个 sqlproj 来存储我所有的数据库对象。我可以将它发布到 sql express,然后再发布到 Azure。我知道有一个用于实际数据库的 .mdf 文件,该文件被放置在我的解决方案中的 app_data 文件夹中,但这需要吗?在我的项目的这一点上,或者如果我正在考虑长期,那么创建 .mdf 并使用它有什么优势/好处?我应该在我的解决方案中同时使用两者吗?

0 投票
0 回答
387 浏览

database - 如何在一次操作中发布解决方案中的所有数据库项目?

回到 VIsual Studio 2010,可以右键单击解决方案并选择“部署解决方案”,它将所有数据库项目推送到各自配置的数据库服务器。

在 Visual Studio 2013 中,对于数据库项目,“发布”取代了之前由“部署”占据的位置。

但是,我似乎找不到在单个操作中发布解决方案中的所有数据库项目的方法。相反,有必要单独“发布”每个数据库项目。即使在配置管理器中将数据库项目设置为“部署”,“部署解决方案”对于包含数据库和 C# 项目的混合解决方案也不会做任何事情。

Visual Studio 2013 中的数据库项目(.sqlproj 文件类型)是否有功能上等同于 Visual Studio 2010 中的“部署解决方案”的功能?

0 投票
1 回答
4325 浏览

amazon-web-services - 如何将 SQLPROJ DACPAC 部署到 Amazon RDS

我们一直使用 .sqlproj 扩展名使用 VS2012 SSDT 进行数据库设计和开发,并使用带有 DACPAC 的 SQLPackage 部署到 SQL Server ......或者从 Visual Studio 设置发布规则。

我们已将数据库迁移到 Amazon RDS SQL Server。

我们最近对数据库设计进行了一些更改,我尝试发布更改,但出现此错误。

我到处搜索如何将这种类型的数据库项目发布到亚马逊,而不是求助于为架构维护本地 SQL Server 数据库并购买 Red-Gate SQL 比较来迁移更改。我很难过。

任何建议将不胜感激。

0 投票
2 回答
508 浏览

visual-studio-2013 - 将 SQLProj Pre/PostDeploy 脚本设置为构建失败

我正在努力通过 VS2013 部署 SQLProj(数据库项目),我遇到了一个可以使用一些反馈的问题。

当我发布更改时,它会对表执行 CCRD(创建、复制、重命名、删除)操作。在 PreDeploy 脚本中创建和复制,在 PostDeploy 脚本中重命名、删除。我将这些语句封装在 Try...Catch 块中,并让它打印出错误消息。当 Pre 和 Post 部署脚本遇到问题时,发布完成,显示发布成功。当这些脚本遇到错误时,我需要行为有所不同。我希望这些脚本中遇到的任何错误都会导致发布失败。我尝试使用 THROW 命令引发错误,并尝试在执行时将 RAISERROR 命令设置严重性为 20,根据 BOL 应该终止连接,但发布仍然以“成功”状态完成。

0 投票
3 回答
2802 浏览

visual-studio-2012 - SQL 项目动态设置恢复模型

我们在 Visual Studio 2012 中有一个 SQL Server 数据库项目 (.sqlproj),我们将其用作数据库架构的源代码控制。它所做的一件很酷的事情是在我们发布代码时生成 SQL 来更新模式。

我们有 3 个配置文件设置 - 开发、测试、实时 - 一切正常。

最近,我们将实时数据库从“简单”恢复更改为“完全”恢复。在我们尝试运行下一个部署以进行开发和测试之前,一切都很好。我们不想在开发和测试时将恢复模式从简单更改为完全 - 我们不需要更改它。但是,当我们发布数据库项目时,它现在想要设置它。

我想根据我正在使用的发布配置设置恢复模式。我已经尝试创建一个变量并在项目 xml 中分配它:

但它仍然尝试在部署脚本中将其设置为“完整”:

我目前的工作是在 Post-Deployment 文件夹中创建一个脚本来确定我在哪个服务器上,然后如果它是开发或测试,则将恢复模型设置回简单。这似乎不是最好的解决方案。

有没有办法使用 SQLCMD 变量设置数据库属性?

0 投票
1 回答
5403 浏览

sql-server-2008 - 为什么 Visual Studio 2013 架构比较包含每个对象定义的权限声明并将它们视为与项目不同?

我最近将我的一个项目更新为 Visual Studio 2013。更新将我的 .dbproj 更改为 .sqlproj,以使其符合新的 SQL 项目格式。

转换后,我对我的 SQL 项目和我的 SQL 2008 生产数据库进行了模式比较,它现在认为实际上每个对象都是不同的。通过模式比较工具进行调查后,似乎区别在于每个对象定义还包括授予每个角色或用户对该对象的权限的声明。

因此,服务器端看起来像这样:

相同对象的客户端如下所示:

为什么是这样?当我使用 Visual Studio 2010 运行架构比较时,这并没有发生。此外,我查看了 SQL 比较工具的所有选项,但找不到一个会“忽略对象的权限声明”的选项。任何人都可以帮忙吗?

编辑

只是为了确保这是 Visual Studio 的 SQL 比较工具而不是 SQL Server 本身的问题,我在 Visual Studio 2010 中重新运行了我的暂存数据库和生产数据库之间的比较,并且对象定义不包括对象权限,就像它们一样在 Visual Studio 2013 中。

0 投票
2 回答
2904 浏览

msbuild - 有条件地在 SSDT SQLPROJ 中构建 Post-Deploy

我想有条件地在我的 SSDT 项目中构建部署后脚本,但我不明白该怎么做。所以通常会构建部署后脚本,但我想要一种在进行调试构建时不构建或运行部署后脚本的方法。我正在从命令行运行构建,所以我可以传入属性,但是我如何使用属性来不运行部署后脚本?

我看到的选项是 SQLCMD、编辑 SQLPROJ 文件或传入属性,但我找不到任何关于可用属性是什么以及 SQLPROJ 文件不是什么的参考。

我要有条件地构建的文件位于此处:

我的调试构建块如下所示:

我的命令行如下所示:

0 投票
3 回答
5298 浏览

.net - Visual Studio 在打开 sql 项目时卡住了

我们正在尝试在装有 Windows 7、VS 2010 和 SP1 和 SSDT 2010 的新机器上设置一个 sql 项目(从 iso 映像安装 SSDT 2010)。但是当我打开 sqlproj 时收到以下消息。

'验证您的模型是否与您的源文件同步。您的数据库将在 12734 操作完成后准备就绪。而且数量还在不断增加。它继续在后台运行。

尝试重新安装 SSDT、VS 2010 但没有帮助。

为 Northwind db 创建了一个新的数据库项目,并且遇到了同样的问题。运行 procmon 并看到它只是一遍又一遍地检查相同的文件。

它在另一个具有类似配置的系统中运行良好。

编辑

这个问题似乎与 TFS 有关,如果我们从 TFS 取消绑定它工作正常。但不确定具体原因。

任何建议都会非常有帮助。

0 投票
1 回答
276 浏览

sql-server-data-tools - 您可以从 sql server 项目的 Build Item 组中删除文件吗?

我的团队已经多年(在我加入之前)不采用 sql server 数据库项目。主要是因为有些项目具有循环引用,因此无法构建。我意识到推荐的方法是排除或修复循环引用。

但是,为了证明我们可以使用它们而不必解决所有技术债务,我想挂钩我的 sql server 项目的构建过程以从Build项目组中删除项目。我对 msbuild 非常熟悉,但到目前为止,似乎没有任何改变包含在构建中的文件并使其失败。

在我们尝试进行模式比较之前,将文件设置为None而不是正常工作。Build它要么将它们设置回构建,要么再次添加它们,并以新文件名结尾_1.sql

它显示构建组中包含的项目数从 2978 到 2977。但是在同一文件上构建仍然失败。 sql错误

0 投票
2 回答
1140 浏览

mysql - SQL 错误:操作数应包含 1 列

在我正在创建的系统上工作时,我尝试在我的项目中使用以下查询:

该查询虽然给了我一个错误:“#1241 - 操作数应包含 1 列

让我难过的是,我认为这个查询不会有问题。选择列,然后从另一个表中再选择两个,然后从那里继续。我只是无法弄清楚问题是什么。

是否有一个简单的解决方法,或者另一种方法来编写我的查询?