gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:13:17 27 4
gpt4 key购买 nike

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

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

我收到的错误是:

The database schema provider could not be determined from the supplied connection string. Check if the connection string is valid for the ADO.NET provider used for your database provider and that you have the privileges necessary to connect to the server.



我所做的步骤是:
  • 创建临时文件夹 C:\temp
  • 将文件夹 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Deploy 的内容复制到 C:\temp
  • 将文件夹 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 )。
  • 我尝试从 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 数据库的策略是一种错误的方法吗?

    最佳答案

    我也试过这个,发现以下对我有用(从 VS2010 命令提示符运行,并使用对数据库具有 sysadmin 权限的帐户运行):

    vsdbcmd /action:import /connectionstring:"Integrated Security=True;Data Source=<SERVER>;Initial Catalog=<DATABASE>" /modelfile:"<DATABASE>.dbschema"

    关于sql-server - 使用 VSDBCMD.exe 创建 dbschema 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016596/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com