问题标签 [database-project]

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 投票
1 回答
3248 浏览

visual-studio-2010 - 让 MSBuild 和 CruiseControl .NET 构建和部署 VS2010 数据库项目

我几乎有一个 NAnt 脚本,将构建和部署 VS2010 数据库项目,但我遇到了一个错误:

我可以看到Microsoft.Data.Schema程序集不在构建服务器上的 MSIL GAC 中 - 如果没有在构建服务器上全货运安装 VS2010,是否有任何干净的方法可以做到这一点?

0 投票
1 回答
166 浏览

visual-studio-2008 - How do I split apart a database project?

I've got three database projects. I'd like to have the base project contain common tables and other common objects. And then, I'd like to have the other two projects contain version specific objects that will work with different versions of an application, in other words, depending on the version of the application I will be interfacing with I will be deploying either one database project or the other.

I thought that if I just made a reference to the base database project in the two version specific databases and then instructed each of the database projects to deploy to the same database it would just work but apparently I'm missing something. When I try to deploy a version of the database it says it can't find any the objects that are referenced in the dependent database project.

The projects build fine, a deployment script just won't generate for the dependent database. It says that objects which are referenced in the base project do not exist.

I'm trying to do this with visual studio 2008 database edition gdr 2 to a 2008 database server.

0 投票
1 回答
2379 浏览

sql-server - 使用 VSDBCMD.exe 创建 dbschema 文件时出错

我有一个 VS 2010 数据库项目,它需要对 Dynamics CRM 数据库的数据库引用。我可以远程访问 32 位 Windows 2003 R2 SP2 服务器。我的策略是创建一个 .dbschema 文件并将其用作参考。

我发现用于创建 .dbschema 文件的两个最佳资源来自stackoverflowMSDN

我收到的错误是:

无法从提供的连接字符串确定数据库架构提供程序。检查连接字符串对于用于数据库提供程序的 ADO.NET 提供程序是否有效,以及您是否具有连接到服务器所需的权限。

我所做的步骤是:

  1. 创建一个临时文件夹 C:\temp
  2. 将文件夹 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Deploy 的内容复制到 C:\temp
  3. 将文件夹 C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5 下面列表中的一些 DLLS 复制到 C:\temp

此时 MSDN 说明说我应该拥有这些文件

  • DatabaseSchemaProviders.Extensions.xml
  • Microsoft.Data.Schema.dll
  • Microsoft.Data.Schema.ScriptDom.dll
  • Microsoft.Data.Schema.ScriptDom.Sql.dll
  • Microsoft.Data.Schema.Sql.dll
  • Microsoft.SqlServer.BatchParser.dll
  • Sqlceer35en.dll
  • Sqlceme35.dll
  • Sqlceqp35.dll
  • Sqlcese35.dll
  • System.Data.SqlServerCe.dll
  • VSDBCMD.EXE

这几乎是真的。

  • DatabaseSchemaProviders.Extensions.xml 实际上位于 C:\temp\Extensions\SqlServer\ 所以我也将它复制到 C:\temp 以防它需要位于同一目录级别
  • Microsoft.SqlServer.BatchParser.dll 在 GAC 中找到,所以大概我不需要将它复制到 C:\temp 但我还是这样做了,采用 32 位版本,因为我的其他 DLL 来自 Program Files (x86 )。

    1. 我尝试从 C:\temp 本地运行 VSDBCMD,并以管理员身份运行 CMD。我还将 C:\temp 复制到服务器并尝试在那里运行它。

VSDBCMD /a:Import /cs:"Provider=SQLOLEDB.1;Password=********;Persist Security Info=True;User ID=sa;Initial Catalog=VANILLA_MSCRM;Data Source=***** ***" /dsp:Sql /model:VANILLA_MSCRM.dbschema

我已经尝试了 Data Sources = {., (local), localhost, the IP address, the machine name, the domain name} 与 Providers = {SQLOLEDB.1, SQLNCLI10.1, SQLNCLI.1} 的所有组合。所有都会导致相同的错误。显然 ., (local) 和 localhost 仅在从服务器运行时使用。我通过 UDL 文件 (\ http://msdn.microsoft.com/en-us/library/e38h511e%28VS.71%29.aspx ) 构建连接字符串来测试我的连接字符串。正如这篇文章所建议的 \ http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/dabd14fa-a805-4855-b3f1-33b37b16c5b1我尝试了 sqlcmd 并且可以成功运行它。

如何解决此问题?我创建一个 .dbschema 文件来引用我的 CRM 数据库的策略是一种错误的方法吗?

0 投票
2 回答
23223 浏览

sql-server - Microsoft Visual Studio SQL 数据库项目中未解决的引用

我在 Visual Studio 中有一个 MS 数据库项目——在进行架构比较之后,我试图生成一个部署脚本,问题是我得到数百个未解决的引用错误,例如以下两个:

SPROCS 在运行时永远不会出现问题。有没有一种快速而肮脏的方法来解决这个问题?也许甚至通过关闭参照完整性检查?

0 投票
4 回答
8824 浏览

visual-studio-2010 - 使用 Visual Studio 2010 数据库项目填充静态数据的最佳实践?

如何使用 Visual Studio 数据库项目使用静态的、源代码控制的数据填充数据库?我已经尝试了以下所有三种策略,发现每一种都比上一种更好。我正在使用但对策略 3 不完全满意。您还有其他选择吗?

  1. 将插入脚本放在“数据生成计划”文件夹中。引用“Script.PostDeployment.sql”文件中的脚本以将它们包含在部署过程中。

    -- 优点:直截了当
    -- 缺点:slooooooow
    -- 缺点:后续部署必须先删除静态数据或检查数据不存在 => 效率低下

  2. 第一次使用最方便的方法将数据插入数据库(例如,可以是 SSMS 编辑表功能)。使用 bcp 命令行实用程序提取该数据以创建一堆数据文件并将它们添加到您的项目中。创建在“Scripts.PostDeployment.sql”文件中引用的脚本,该脚本为每个数据文件执行“批量插入”语句。

    -- 优点:比插入语句快得多
    -- 优点:可以利用 SSMS 编辑表功能
    -- 缺点:每个批量插入语句都需要数据文件的完全限定文件名,所以如果数据文件位于我的机器上的“C :\Projects\Dev\Source\foo.dat" 那么远程开发机器也必须在该位置拥有它们,否则批量插入语句将失败
    - 缺点:在后续部署中执行批量插入语句之前必须删除现有静态数据

  3. 在部署过程中创建临时表来保存静态数据,并使用 sql merge 语句将这些表与目标表同步。请参阅这些博客文章中的任何一篇。

    -- 优点:似乎 sql 合并对问题有完美的语义
    -- 缺点:该策略的逻辑在每个文件中重复 -- 缺点:表定义在 sql 合并文件中作为临时表重复

有没有更好的替代策略?我放弃了策略 1,因为它太慢了。由于完全限定的文件名问题,我不喜欢策略 2。我对策略 3 感到满意,但并不激动。有最佳实践吗?

0 投票
1 回答
669 浏览

visual-studio - SVN 和 Visual Studio 数据库项目?

Visual Studio 数据库项目的 SVN 中包含哪些文件或文件类型的约定是什么(相当于忽略 *.suo、*.csproj.user 等)?

我刚刚开始使用数据库项目来管理 Web 应用程序的数据端,我注意到用于部署到数据库的连接字符串存储在 .dbproj 文件中,否则它是通用的,需要在 SVN 中。但在理想情况下,此设置应针对每个开发人员,以便他们可以更新并按下 Deploy 并更新其开发数据库中的所有内容。如果此设置在用户选项文件中,则可以仅对必要的 sql 文件进行版本控制。

此外,当您更改目标部署数据库时,它会在 sql/debug 或 sql/release 中创建一堆文件:$databasename_Database.sqlcmdvars、$databasename_Database.sqldeployment、$databasename_Database.sqlsettings、$databasename_Script.PostDeployment.sql 和 $databasename_Script .PreDeployment.sql。与上面相同的逻辑,不是我的开发数据库特有的吗?

另一种方法是将项目指向一个共享的测试数据库服务器,但据说这是个坏主意

0 投票
1 回答
1480 浏览

visual-studio-2010 - Visual Studio 数据库项目和 aspnet_regsql.exe

我正在使用 Visual Studio 数据库项目对网站的数据库进行更改控制。我想使用 aspnet_regsql 工具创建的会员/角色模型来管理对网站的访问。

到目前为止,我在部署数据库之前运行 aspnet_regsql,以便数据库项目将网站特定的表合并到数据库中。我一直在寻找一种将 aspnet_ 表包含在数据库项目中的方法,但无法弄清楚如何做到这一点。

有人试过这个吗?有充分的理由不这样做吗?

0 投票
1 回答
1215 浏览

visual-studio-2010 - 为数据库项目创建“更新脚本”?

当我发布每个版本的软件版本和分支版本时,我如何才能轻松地为这些版本生成更新/补丁脚本?我无法打开数据库项目并比较它们,因为它们的名称相同,而 Visual Studio 不喜欢这样。

我的下一个想法是将低版本部署到数据库,然后通过打开软件的下一个版本来生成更改脚本。这似乎有点乏味。

另外,如何将其集成到设置项目而不是手动过程中?

0 投票
2 回答
412 浏览

visual-studio-2008 - VSTS 数据库项目:刷新依赖项或架构

我需要帮助创建和使用 VSTS 2008 数据库项目吗?

我已经从 MS 下载了 GDR2 并将我们巨大的数据库导入到一个新的数据库项目中。现在,我可以使用 TFS 的完整期货,这让我非常高兴。

但这是一个问题;

一旦我从 tfs 签出一个 sp,我就会在 Dependency Viewer 中失去它的引用。

如何刷新或重新创建数据库架构?(我知道创建一个模式需要很长时间,如果你也有这个的答案,我会很高兴)

0 投票
2 回答
545 浏览

visual-studio-2010 - 数据库项目/解决方案最佳实践

我有一个适用于数据库项目的应用程序(ASP.NET 3.5/VS 2010)。

将数据库项目作为应用程序解决方案中的另一个项目有什么缺点吗?

为数据库项目提供另一个解决方案会更好吗?