使用SQL Server 2008在Visio中进行数据库图表的逆向工程

42

我需要反向工程一个Microsoft SQL Server 2008,以创建Microsoft Visio 2007数据库模型图。因此,我从“数据库”菜单中选择“反向工程”来连接到数据库。

我配置了Microsoft SQL Server Visio驱动程序,以便它使用SQL Server Native Client 10.0作为ODBC驱动程序。然后,我创建了一个用户DSN来连接我的数据库。这个DSN有效(至少提供的测试是成功的)。在反向工程向导中点击下一步后,Visio会友好地要求我的凭据,我正确地提供了它们,但是在单击“确定”后,我收到以下消息:

  

当前选择的Visio驱动程序与数据源不兼容。

我尝试使用旧的SQL Server ODBC驱动程序,当然也重新配置了Visio驱动程序。它也不起作用。

6个回答

34
要将Visio 2007连接到SQL Server 2008数据库,请在Visio 2007中运行反向工程向导(Database/Reverse Engineer. . .),从“已安装的Visio驱动程序”下拉菜单中选择ODBC通用驱动程序。然后使用SQL Native Client(2005.90.4035,2005 SP3)创建新数据源。您将收到一个警告,指出检索到的某些信息可能不完整。单击“确定”并继续。这不是最直观的解决方案(但也不难),但至少这将允许您使用Visio 2007连接到SQL 2008。
Chip Lambert, Slalom Consulting

2
适用于Visio 2010 + SQL Server 2012问题!另外,为什么Visio如此无聊? - sumitkm

31

来自微软支持论坛的Microsoft支持

进一步调查发现,这是Visio 2007的预期行为。当Visio使用Visio SQL Server驱动程序打开连接时,它会检查服务器版本,并且由于SQL Server 2008是在Visio 2007之后发布的,因此不认识SQL Server 2008作为受支持的版本并关闭连接。您可以等待未来版本的Visio发布,该版本将识别SQL Server 2008,或者使用Visio通用ODBC驱动程序,该驱动程序可以成功地打开与SQL Server 2008的连接。第三个选项是使用SQL Server 2005的副本进行初始反向工程。Visio团队已经知道了这个问题。


5
我真的不喜欢微软对此问题的回答,特别是我们已经接近2010年中期了......但我看到您上面列出的答案与微软跟踪页面上此错误的相同......该页面被标记为“按设计关闭”。以下是想要在微软网站上发表意见的人们可以使用的URL链接: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=365757 - Jeff
3
别绝望,你可以使用Chip Lambert下面的方法,它真的很有效! - tiktock
4
@Jeff,问题是我已经等待过了。现在他们从Visio 2013中删除了反向工程功能。真是个笑话。http://tinyurl.com/ceqk8w7 - Shaz

8

虽然使用ODBC通用驱动程序可以工作,但是反向工程工具会忽略触发器、检查子句、视图和存储过程。如果指定Access Visio驱动程序,则至少可以恢复检查子句和视图。

总的来说,我必须说,我认为这显示了微软相关团队对客户的轻蔑态度。去年升级到Visual Studio 2010时,我有一个非常类似的经历,结果发现我的SSIS项目无法打开……正如此线程所示,微软完全不关心。


哇!超级技巧!在看到这个之前,我已经点赞了Chip的回答!确实,Access驱动程序也可以获取SQL SERVER 2012的视图。赞! - sumitkm

4

3

我最终使用通用OLE Db提供程序而不是ODBC通用驱动程序连接到SQL Server 2008 - 数据类型似乎可以正常传输。


0

我也遇到了与上述相同的问题,以下是我发现有效的解决方法:

  1. 使用反向工程向导
  2. 在第一步中使用通用 OLE Db 提供程序
  3. 然后在下一步中将连接提供程序设置为显示的最高 SQL 本机驱动程序(我正在使用 SQL2016,具体参考我的 Windows 10 Surface Pro 4 上的 SQL 本机 11.0)
  4. 在连接选项卡中输入正确的目标和凭据(如果不确定,请测试连接)

    这对我很有效,我随后就能够获取表、索引、视图、主键、外键和存储过程。

我还发现 Visio 经常锁死...显然这很常见(我还以为自己很特别),最终受够了之后,我查看了这些链接:

https://dhondiyals.wordpress.com/2011/07/29/microsoft-visio-2010-crashes-very-frequently-resolved/

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_visio-mso_windows8/visio-2010-frozen-on-surface-pro/df1df27a-6585-4b0c-8442-a4363c541e08

我发现我的问题在后面(即触摸屏和手写运行的应用程序) 。所以我结束了它,现在我拥有了我期望的经验。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接