首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VSDBCMD.exe创建dbschema文件时出错

使用VSDBCMD.exe创建dbschema文件时出错
EN

Stack Overflow用户
提问于 2010-10-25 16:15:43
回答 1查看 2.4K关注 0票数 3

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

我发现创建.dbschema文件的两个最佳资源来自堆栈过流MSDN

我收到的错误是:

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

我所做的步骤是:

  1. 创建临时文件夹C:\temp
  2. 复制文件夹C:\程序文件(X86)\MicrosoftVisualStudio10.0\VSTSDB\部署到C:\temp的内容
  3. 从文件夹C:\Program (X86)\\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来自程序文件(x86)。
代码语言:javascript
复制
1. I tried running VSDBCMD locally from C:\temp with CMD run as administrator. I have also copied C:\temp to the server and tried running it there.

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

我尝试过数据源= {.、(本地)、本地主机、IP地址、机器名、域名}与提供者= {SQLOLEDB.1、SQLNCLI10.1、SQLNCLI.1}的所有组合。所有这些都会导致相同的错误。显然,(本地)和本地主机仅在从服务器运行时才使用。我通过UDL文件([http://msdn.microsoft.com/en-us/library/e38h511e%28VS.71%29.aspx](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](http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/dabd14fa-a805-4855-b3f1-33b37b16c5b1)所建议的那样,我尝试了sqlcmd并可以成功地运行它。

如何解决此问题?我创建一个.dbschema文件来引用我的客户关系管理数据库的策略是错误的吗?

EN

回答 1

Stack Overflow用户

发布于 2011-08-15 09:58:14

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

代码语言:javascript
复制
vsdbcmd /action:import /connectionstring:"Integrated Security=True;Data Source=<SERVER>;Initial Catalog=<DATABASE>" /modelfile:"<DATABASE>.dbschema"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4016596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档