无法通过ODBC获得SQL Server视图(逆向工程师)

时间:2012-11-19 05:07:24

标签: sql-server-2008 ms-access odbc visio

  • SQL Server 2008
  • Visio Pro 2003
  • Access 2003
  • 使用系统DSN

我需要对SQL Server数据库进行逆向工程,但是当我尝试这样做时,“视图”框是“灰色的”(存储的程序也是“灰色的”但在此阶段我的需求是不必要的)。我正在使用具有sys_admin权限的SQL Server帐户通过ODBC进行连接(需要使用ODBC,因为Visio无法识别本机连接器,记录良好的缺陷,并且可信连接不能用作我也有本地管理员权限,我们公司拒绝在跨机器连接上识别本地管理员。这是使用ODBC SQL Server类型的连接。如果我更改ODBC连接以使用本机客户端类型,它允许我选择存储过程,遗憾的是仍然无法选择视图框。

我使用简单的SQL Server类型的ODBC连接Access以查看我能够链接的内容,它允许我查看所有表,视图,包括系统表和视图,它告诉我sys_admin权限被保留通过ODBC连接。

我在这里遗漏了什么吗?关于SO和Google的一些搜索没有发现为什么Visio看不到某些对象(忽略安全权限,因为我有管理员权限),并且能够通过Access“看到”它们让我更加沮丧,因为我假设使用相同类型的ODBC连接的两个产品都会遇到相同的限制和功能。

如何让Visio让我使用“逆向工程”功能将SQL Server中的视图放入我的Visio文档?我以前使用其他服务器完成此操作

3 个答案:

答案 0 :(得分:1)

我在SQL数据库中创建了几个新视图,并且在尝试通过Access链接到它们时无法看到它们。它总是归结为我没有给SQL用户或视图的用户“选择”权限这一事实。一定要检查一下。只差2美分。

答案 1 :(得分:0)

TL;博士

不要使用OBDC驱动程序,请使用Access Visio驱动程序。

为什么?

找到了here on SO

  

一个旧线程,但仍然是当前的问题......我发现虽然   使用ODBC通用驱动程序,逆向工程工具   然后错过了触发器,检查子句,视图和存储过程。   通过指定Access Visio驱动程序,至少我们恢复了   检查条款和视图。

     

总的来说,我不得不说,我认为这显示出令人震惊的不足   代表相关团队的客户   微软。升级到去年我的体验非常相似   Visual Studio 2010只是为了发现我的SSIS项目不再存在   打开......从这个帖子中可以看出,MS可能不在乎。

答案 2 :(得分:-1)

没有理由认为能够记录或绘制表间关系的逆向工程工具与您有一些已保存的查询有关吗?视图只是一些已保存的SQL查询,并且完全没有表格之间的关系。

保存的SQL查询(也称为视图)不是表设计结构。在您在数据库中构建的数据库结构和关系方面,视图的创建或视图的删除都不会以任何实质性方式承担。

因此,保守估计有1万亿个网页存在Google或Bing搜索的原因导致您的问题绝对没有结果。

换句话说,您假设数据库ER图包含一堆保存的SQL查询,这是您的完整和彻底的谬误。

现在你可能会问这样的文档工具是否存在,但是你实际上问为什么你找不到关于这个主题的任何信息而简单的答案是因为这个星球上没有其他人,事实上据我们所知,在星系中做出你正在做的假设。

  

能够通过Access“看到”他们让我更加沮丧。

目前还不清楚为什么你会在MS Access等应用程序开发工具中使用这些视图时出现更多的混淆?

关于为什么可以使用Access查看这些视图的简单答案是因为Access不是逆向工程工具。实际上,Access也不是数据库文档工具。

Access是一个软件开发工具,允许您构建应用程序并连接到GIVEN DATABASE SYSTEM。因此,MS Access可以使用数据库,例如产品附带的本机数据库引擎(JET或现在称为ACE)。 Access也可以连接到Oracle或类似SQL Server的东西。

在所有这些情况下毫无疑问Access可以连接到SQL视图,因为该工具旨在从特定数据库引擎中获取CONSUME数据。然而,消耗来自特定数据库系统的数据是一个大规模且非常不同的过程,然后使用逆向工程工具来确定表之间的关系。

数据库系统在表之间存在某种关系这一事实,或者您已强制实施的关系与您希望绘制图表的关系完全无关,而是在某些地方保存了一些简单的SQL查询。所以一个视图真的是一些保存的SQL。您可以将SQL保存在代码,文本文件中,或者使用我们称为选择查询的Access in保存,或者在SQL Server的情况下,可以将SQL保存为视图。

然而,查看一堆保存的SQL查询是完全不同的事情,然后记录数据库中表之间的关系的存在。创建视图,删除视图的ZERO与表之间的关系有关。

事实上,我们发现MS Access表格图工具无法在产品附带的表格关系图表工具中包含视图。所以实际上MOST开发工具不包括整个表ER图中的视图。

因此,在一天结束时,Visio之类的东西不能简单地消费和利用一堆的可能原因是保存的SQL查询是设计这样的工具根本不用于此目的。