Sql server VisualStudio数据库项目的目的

Sql server VisualStudio数据库项目的目的,sql-server,visual-studio,visual-studio-2019,Sql Server,Visual Studio,Visual Studio 2019,我有几个关于工作流程的问题。 最近我参加了一个新项目,涉及到很多数据库活动。我们的存储库之一是VisualStudio数据库项目,其中包含所有存储过程、函数等。我们不把它用于CI,比如Azure。据我所知,我们手动发布所有内容。 问题是: 1 visual studio数据库项目的目的是什么?你能给我讲几点吗 2我应该在开发过程中调试并运行SSMS或Visual studio db项目中的所有sql代码吗 3 it中“发布”和“构建”功能的目的是什么?他们是否能够破坏现有数据库中的某些内容?如何

我有几个关于工作流程的问题。 最近我参加了一个新项目,涉及到很多数据库活动。我们的存储库之一是VisualStudio数据库项目,其中包含所有存储过程、函数等。我们不把它用于CI,比如Azure。据我所知,我们手动发布所有内容。 问题是:

1 visual studio数据库项目的目的是什么?你能给我讲几点吗

2我应该在开发过程中调试并运行SSMS或Visual studio db项目中的所有sql代码吗

3 it中“发布”和“构建”功能的目的是什么?他们是否能够破坏现有数据库中的某些内容?如何、为什么以及何时安全地使用它们

我将非常感谢您提供与此主题相关的任何教程、视频和最佳实践

1 visual studio数据库项目的目的是什么?你能告诉我吗 关于这件事有几点

在当前状态下,它适合跟踪数据库并查看更改。在更大的场景中正确生成增量脚本缺少很多功能,redgate有一个基于此的产品。我们使用它来记录数据库状态——这可以方便地查看特定数据库与特定分支中记录的状态之间的差异

我们使用另一种机制来生成更改脚本

2在调试期间,我应该调试并运行SSMS或Visual studio db项目中的所有sql代码吗 开发过程

啊,我们有一个非常广泛的集成测试套件,它来自API,并执行大量后端SQL,这为我们提供了支持。无需在每次部署上花费数天时间测试所有SQL

3 it中“发布”和“构建”功能的目的是什么

如果你发现了,告诉我。我发现它们是半生不熟的。但是,我们有时会处理复杂的大型数据库—这不仅是关于更改数据库结构,而且是以一种特定的方式进行更改,即转换数据,然后将其插入更改后的数据库中

我有时确实发现DB proejcts可以部署一个包含静态数据的新数据库——但是,无论如何,我们经常使用变更脚本来实现这一点

这确实是一次深思熟虑的尝试,尤其是与缺少多步骤更改等相比,它对我们的用例没有真正的用处

MS经常这样做,也就是说,我们也不使用EntityFramework中的db迁移。通过不同的产品采用多种方法

1 visual studio数据库项目的目的是什么?你能告诉我吗 关于这件事有几点

在当前状态下,它适合跟踪数据库并查看更改。在更大的场景中正确生成增量脚本缺少很多功能,redgate有一个基于此的产品。我们使用它来记录数据库状态——这可以方便地查看特定数据库与特定分支中记录的状态之间的差异

我们使用另一种机制来生成更改脚本

2在调试期间,我应该调试并运行SSMS或Visual studio db项目中的所有sql代码吗 开发过程

啊,我们有一个非常广泛的集成测试套件,它来自API,并执行大量后端SQL,这为我们提供了支持。无需在每次部署上花费数天时间测试所有SQL

3 it中“发布”和“构建”功能的目的是什么

如果你发现了,告诉我。我发现它们是半生不熟的。但是,我们有时会处理复杂的大型数据库—这不仅是关于更改数据库结构,而且是以一种特定的方式进行更改,即转换数据,然后将其插入更改后的数据库中

我有时确实发现DB proejcts可以部署一个包含静态数据的新数据库——但是,无论如何,我们经常使用变更脚本来实现这一点

这确实是一次深思熟虑的尝试,尤其是与缺少多步骤更改等相比,它对我们的用例没有真正的用处


MS经常这样做,也就是说,我们也不使用EntityFramework中的db迁移。通过不同的产品实现多种途径。

我喜欢❤ 此项目类型为

数据库项目为您提供了以下几点:

它将您的模式置于源代码管理中 它允许您验证您的模式 它提供跨对象的语义重命名 它与Azure DevOps管道集成 它允许您部署增量更新 它允许您编写预/后操作脚本 它可以轻松地部署数据库的dev/stage版本 使用它是个好主意吗

对。我认为它应该成为SQL Server每个项目的一部分

我看到了它的问题:

VS for Mac不支持此功能 我在VisualStudio2019中使用它


我喜欢❤ 此项目类型为

数据库项目为您提供了以下几点:

它将您的模式置于源代码管理中 它允许您验证您的模式 它提供跨对象的语义重命名 它与Azure DevOps管道集成 它允许您部署增量更新 它允许您编写预/后操作脚本 它可以轻松地部署数据库的dev/stage版本 使用它是个好主意吗

对。我认为它应该成为SQL Server每个项目的一部分

我看到了它的问题:

VS for Mac不支持此功能 我在VisualStudio2019中使用它

这是SQL Server数据工具SSDT。如果你用谷歌搜索这个短语,你会发现很多网站都在详细讨论它。我没有首选的网站当我想弄明白一些事情的时候,我读了几个网站来获得一个综合视图

关键是,SSDT提供的是一种基于状态的部署方法,而不是更熟悉的基于迁移的方法。基于状态和基于迁移是谷歌的另一个好术语,所有这些网站在描述它方面比我在这里做得更好

构建大致类似于代码的编译,例如语法是否正确,或者您引用的表、列、过程是否不存在。由于它是在VisualStudio中管理的,因此跟踪和修复这些bug非常容易。嗯,至少要找到他们

发布本质上是按照本项目代码中定义的数据库,将其与目标数据库进行比较,并使该数据库与代码中的数据库相似。在中输入表、过程等定义,SSDT将为您编写所有必要的CREATE、ALTER和DROP语句。是的,如果有数据挡住了去路,会有很多问题,需要采取各种变通办法来处理,但您不必确保五年的脚本按正确的顺序处理。

这是SQL Server数据工具SSDT。如果你用谷歌搜索这个短语,你会发现很多网站都在详细讨论它。我没有首选的网站当我想弄明白一些事情的时候,我读了几个网站来获得一个综合视图

关键是,SSDT提供的是一种基于状态的部署方法,而不是更熟悉的基于迁移的方法。基于状态和基于迁移是谷歌的另一个好术语,所有这些网站在描述它方面比我在这里做得更好

构建大致类似于代码的编译,例如语法是否正确,或者您引用的表、列、过程是否不存在。由于它是在VisualStudio中管理的,因此跟踪和修复这些bug非常容易。嗯,至少要找到他们


发布本质上是按照本项目代码中定义的数据库,将其与目标数据库进行比较,并使该数据库与代码中的数据库相似。在中输入表、过程等定义,SSDT将为您编写所有必要的CREATE、ALTER和DROP语句。是的,如果有数据挡住了去路,会有很多问题,有各种各样的解决办法,但是你不必确保你五年的脚本都是按正确的顺序处理的。

所以最好问问我的队友?我只是想知道这听起来是否像个愚蠢的问题。不,这更像是VisualStudio中使用最少的部分。在管理数据库模式的所有替代方法和它的内部限制之间,我还必须看到有人实际使用它,而不仅仅是为了文档,即将db模式签入源代码管理。看看你在这里得到了多少答案;所以最好问问我的队友?我只是想知道这听起来是否像个愚蠢的问题。不,这更像是VisualStudio中使用最少的部分。在管理数据库模式的所有替代方法和它的内部限制之间,我还必须看到有人实际使用它,而不仅仅是为了文档,即将db模式签入源代码管理。看看你在这里得到了多少答案;此处的更多信息:此处的更多信息: