当前位置:首页 > 系统运维 > 正文内容

在SQL Server中修改从Microsoft Access链接的表(1)

a8116255310年前 (2015-11-21)系统运维14

问题

我们讨论过了如何在把 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 ToolsDatabases UtilitiesLinked Table Manager。

图7

选择你想要更新的表,点击确定。你会收到通知,告诉你所有的表都已成功更新。然后关闭Linked Table Manager,回到Access主界面。

图8

现在我们再从Access的设计模式里查看链接表,就会发现之前添加的两列。

在Microsoft Access中添加主键

假如在初始链接过程中跳过在Access中分配主键的步骤,在链接完成后想要添加主键要怎么办 步骤跟我们刚才示范的DDL修改是一样的过程。举个例子, 我们在SQL Server实例的Northwind数据库里创建一个表名为SubCategories的表,使用以下脚本创建出不带任何索引的表:

CREATE TABLE dbo.SubCategories 
( 
SubCategoryID INT IDENTITY(1,1) NOT NULL, 
SubCategoryName NVARCHAR(15) NOT NULL, 
Description VARCHAR(50) NULL 
) ON [PRIMARY]

我们现在链接Access里的SubCategories表,这时候不设置Unique Record Identifier(因为SQL Server表里没有定义主键)。

图9

 

图10

现在我们转换回SQL Server,运行以下T-SQL命令来添加主键。

LTER TABLE dbo.SubCategories ADD CONstRAINT 
PK_SubCategories PRIMARY KEY CLUSTERED (SubCategoryID) 
WITH 
( 
STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS = ON, 
ALLOW_PAGE_LOCKS = ON 
) 
ON [PRIMARY] 

完成之后,我们打开Linked Table Manager,通过前面演示的相同步骤进行。

图11

我们这时在Access中查看SubCategories表,就会发现主键已经设置好了。

图12

在Access里删除一个链接表

简单地说,在Microsoft Access里删除一个链接表对基本SQL数据库绝对没有任何影响。不过作为用户,假如通过Microsoft Access操作,没有权限来对基本SQL Server数据库进行DDL修改,也不能直接从Microsoft Access程序里直接删除表。在Access里删除表,只是把链接表删除掉而已。就跟Microsoft SQL Server的链接服务器一样,当你删除链接服务器,你仅仅是删除了链接而已,并没有删除服务器实例。

下面是Microsoft Access显示的信息:

图13

问题

我们讨论过了如何在把 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 ToolsDatabases UtilitiesLinked Table Manager。

图7

选择你想要更新的表,点击确定。你会收到通知,告诉你所有的表都已成功更新。然后关闭Linked Table Manager,回到Access主界面。

图8

现在我们再从Access的设计模式里查看链接表,就会发现之前添加的两列。

在Microsoft Access中添加主键

假如在初始链接过程中跳过在Access中分配主键的步骤,在链接完成后想要添加主键要怎么办 步骤跟我们刚才示范的DDL修改是一样的过程。举个例子, 我们在SQL Server实例的Northwind数据库里创建一个表名为SubCategories的表,使用以下脚本创建出不带任何索引的表:

CREATE TABLE dbo.SubCategories 
( 
SubCategoryID INT IDENTITY(1,1) NOT NULL, 
SubCategoryName NVARCHAR(15) NOT NULL, 
Description VARCHAR(50) NULL 
) ON [PRIMARY]

我们现在链接Access里的SubCategories表,这时候不设置Unique Record Identifier(因为SQL Server表里没有定义主键)。

图9

 

图10

现在我们转换回SQL Server,运行以下T-SQL命令来添加主键。

LTER TABLE dbo.SubCategories ADD CONSTRaiNT 
PK_SubCategories PRIMARY KEY CLUSTERED (SubCategoryID) 
WITH 
( 
STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS = ON, 
ALLOW_PAGE_LOCKS = ON 
) 
ON [PRIMARY] 

完成之后,我们打开Linked Table Manager,通过前面演示的相同步骤进行。

图11

我们这时在Access中查看SubCategories表,就会发现主键已经设置好了。

图12

在Access里删除一个链接表

简单地说,在Microsoft Access里删除一个链接表对基本SQL数据库绝对没有任何影响。不过作为用户,假如通过Microsoft Access操作,没有权限来对基本SQL Server数据库进行DDL修改,也不能直接从Microsoft Access程序里直接删除表。在Access里删除表,只是把链接表删除掉而已。就跟Microsoft SQL Server的链接服务器一样,当你删除链接服务器,你仅仅是删除了链接而已,并没有删除服务器实例。

下面是Microsoft Access显示的信息:

图13

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22794.html

分享给朋友:

“在SQL Server中修改从Microsoft Access链接的表(1)” 的相关文章

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

windows 7系统怎么取消禁ping命令?

windows 7系统怎么取消禁ping命令?

当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

微软为windows 7用户重新发布补丁KB2952664 帮助提升Win10升级体

1月13日消息,微软今天为Windows 7(SP1)用户重新推送了编号为KB2952664的更新补丁,该更新在官方KB知识库中的描述为“Windows 7系统升级兼容性更新”,用于帮助微软改进当前版本系统,提升升级到最新版Win10系统的体验。 这项更新还用于在系统中显示Windows10更新提...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...