我有一个VS 2010数据库项目,需要对Dynamics CRM数据库的数据库引用。我可以远程访问32位Windows 2003 R2 SP2服务器。我的策略是创建一个.dbschema文件并将其用作参考。
我在创建.dbschema文件时找到的两个最佳资源来自stackoverflow和MSDN。
我收到的错误是:
无法从提供的连接字符串确定数据库架构提供程序。检查连接字符串是否对用于数据库提供程序的ADO.NET提供程序有效,并且您具有连接到服务器所需的权限。
我所做的步骤是:
此时MSDN指令说我应该有文件
这几乎是真的。
在GAC中找到了Microsoft.SqlServer.BatchParser.dll,因此我可能不需要将其复制到C:\ temp但是我还是这样做了,因为我的其他DLL所以采用了32位版本来自Program Files(x86)。
VSDBCMD / a:导入/cs:"Provider=SQLOLEDB.1;Password=********;Persist Security Info = True;用户ID = sa;初始目录= VANILLA_MSCRM;数据源= ** ******“/ dsp:Sql /model:VANILLA_MSCRM.dbschema
我已尝试使用Providers = {SQLOLEDB.1,SQLNCLI10.1,SQLNCLI.1}的所有数据源组合= {。,(本地),localhost,IP地址,计算机名称,域名}。都导致同样的错误。显然,(本地)和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 :(得分:1)
我也试过了,发现以下内容对我有用(从VS2010命令提示符运行,并使用对数据库具有sysadmin特权的帐户运行):
vsdbcmd /action:import /connectionstring:"Integrated Security=True;Data Source=<SERVER>;Initial Catalog=<DATABASE>" /modelfile:"<DATABASE>.dbschema"