问题:
我们讨论过了如何在把 Microsoft Access的表链接到SQL Server里,那么如何使用Access来管理修改呢?如果你修改了相应SQL Server表的结构,会怎么样?如果你删除Access里链接的表,SQL Server里的表又会出现什么情况呢?
专家解答:
现在让我们来逐个解答以上的疑问。首先是修改相应SQL Server表的结构的情况。打开Tables(表格)页面,选择要修改的表,右击并选择菜单中的“Design View”选项(设计视图)。
![]() |
| 图1 |
当你试图修改Access中链接表的结构设计时,会出现以下信息:
![]() |
| 图2 |
这是因为所链接表的设计是为SQL Server的基本对象所有,即使用户在基本SQL Server数据库中被授予db_owner角色权限,用户也不能对表作出数据定义修改(DDL变化)。如果你需要对表进行修改,你需要在Microsoft SQL Server里进行修改,然后再重新链接表。
我们将使用Northwind数据库里的Territories表作为实例进行讲解。从SQL Server的视图里该表的当前设计是这样的:
![]() |
| 图3 |
在Access里该表的设计如下:
![]() |
| 图4 |
我们现在向SQL Server表里添加两列:分别是 RegionSupervisorID (int, null) 和TerritorySupervisorID (int, null),如下图所示:
![]() |
| 图5 |
修改之后,Access表还是跟修改之前一样,没有现实变化:
![]() |
| 图6 |
为了在基本SQL表里确认结构改动,你需要利用Microsoft Access的Linked Table Manager。在Access里按照以下路径打开: select Tools\Databases Utilities\Linked Table Manager。
![]() |
| 图7 |
选择你想要更新的表,点击确定。你会收到通知,告诉你所有的表都已成功更新。然后关闭Linked Table Manager,回到Access主界面。
![]() |
| 图8 |
现在我们再从Access的设计模式里查看链接表,就会发现之前添加的两列。







