上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 44 下一页
摘要: 当在服务器上运行SQL Server 时,我们总是要想方设法去使SQL Server 免遭非法用户的侵入,拒绝其访问数据库,保证数据的安全性。SQL Server 提供了强大的内置的安全性和数据保护,来帮助实现这种理所当然的要求。从前面的介绍中我们可以看出SQL Server 提供了从操作系统,SQL ServerE, 数据库到对象的多级别的安全保护。其中也涉及到角色、数据库用户、权限等多个与... 阅读全文
posted @ 2007-07-27 11:47 Athrun 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 14.5.1 角色管理简介 自SQL Server 7 版本开始引入了新的概念角色,从而替代以前版本中组的概念。和组一样,SQL Server 管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可实现对所有用户权限的设置,大大减少了管理员的工作量。在SQL Server 中主要有两种角色类型:服务器角色与数据库角色。 1 服务器角色 服务器角色是指根据SQL Serv... 阅读全文
posted @ 2007-07-27 11:46 Athrun 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 14.4.1 权限管理简介 用户在登录到SQL Server 之后,其安全账号(用户账号)所归属的NT 组或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在SQL Server 中包括两种类型的权限,即对象权限和语句权限。 (1) 对象权限 对象权限总是针对表、视图、存储过程而言,它决定了能对表、视图、存储过程执行哪些操作(如UPDATE... 阅读全文
posted @ 2007-07-27 11:42 Athrun 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 14.3.1 数据库用户简介 数据库用户用来指出哪一个人可以访问哪一个数据库。在一个数据库中,用户ID 惟一标识一个用户,用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的,用户账号总是基于数据库的,即两个不同数据库中可以有两个相同的用户账号。 在数据库中,用户账号与登录账号是两个不同的概念。一个合法的登录账号只表明该账号通过了NT 认证或SQL Server 认证... 阅读全文
posted @ 2007-07-27 11:41 Athrun 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 14.2.1 用SQLServer Enterprise Manager 管理SQL Server 登录 在SQL Server 中,通过SQL Server Enterprise Manager 执行以下步骤来管理SQLServer 登录: (1) 启动SQL Server Enterprise Manager, 单击登录服务器紧邻的‘+’ 标志。 (2) 单击安全性文件夹旁边的... 阅读全文
posted @ 2007-07-27 11:39 Athrun 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到SQL Server 并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此,安全性管理与用户管理是密不可分的。SQL Server 2000 提供了内置的安全性和数据保护,并且这种管理有效而又容易。 本章主要讨论如何创建和管理用户账号,以及如何实现... 阅读全文
posted @ 2007-07-27 11:36 Athrun 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 除了使用系统提供的函数外,用户还可以根据需要自定义函数。用户自定义函数(User Defined Functions)是SQL Server 2000 新增的数据库对象,是SQL Server 的一大改进。 用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行。用户自定义函数中存储了... 阅读全文
posted @ 2007-07-27 11:32 Athrun 阅读(1514) 评论(0) 推荐(0) 编辑
摘要: 在前面我们已经提到过有关视图的下述观点:由于视图返回的结果集与具有行列结构的表有着相同的表格形式,并且我们可以在SQL 语句中像引用表那样引用视图,所以我们常把视图称为虚表。标准视图的结果集并不以表的形式存储在数据库中,而是在执行引用了视图的查询时,SQL Server 2000 才把相关的基本表中的数据合并成视图的逻辑结构。 上面的结论常让我们产生这样的焦虑:由于是在执行了引用了视图的查... 阅读全文
posted @ 2007-07-27 11:28 Athrun 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 视图与表具有相似的结构,当向视图中插入或更新数据时,实际上对视图所引用的表执行数据的插入和更新。但是通过视图插入、更新数据和表相比有一些限制,下面通过具体的例子来讲述通过视图插入、更新数据以及其使用的限制。 使用SELECT 语句,可以在视图和表中查到该条记录。但是如果执行下面的语句,虽然仍可以成功执行,但只可以在表而不是视图中查到该条数据。 注意:由于向视图插入数据实质是... 阅读全文
posted @ 2007-07-27 11:27 Athrun 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 13.10.1 创建视图 SQL SERVER 提供了使用SQL SERVER Enterprise Manager 和Transac-SQL 命令两种方法来创建视图。在创建或使用视图,时应该注意到以下情况: •只能在当前数据库中创建视图,在视图中最多只能引用1024 列; •如果视图引用的表被删除,则当使用该视图时将返回一条错误信息,如果创建具有相同的表的结构新表来替代已删除的表... 阅读全文
posted @ 2007-07-27 11:26 Athrun 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通... 阅读全文
posted @ 2007-07-27 11:22 Athrun 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 在建立一个游标之后,便可利用系统过程对游标进行管理管理,游标的系统过程主要有以下几个:sp_cursor_list、sp_describe_cursor、 sp_describe_cursor_tables 、sp_describe_cursor_columns。 各系统过程的具体含义分别为: 13.8.1 sp_cursor_list 显示在当前作用域内的游标及其属性;其命令格式... 阅读全文
posted @ 2007-07-27 11:21 Athrun 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 在前面几节,我们详细介绍了如何声明游标,从游标中读取数据以及关闭、释放游标的方法。下面我们将给出几个应用实例使读者对游标有更为全面的了解。 13.7.1 游标变量的应用 我们已经提到游标是从MS SQL SERVER 7 版本才开始使用的新的变量类型,游标常被应用在存储过程、触发器中。那么游标是如何被作为变量而应用呢?看一下系统过程sp_cursor_list 的SQL 语句文本,会大... 阅读全文
posted @ 2007-07-27 11:19 Athrun 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 通常情况下我们用游标来从基础表中检索数据,以实现对数据的行处理。但在某些情况下,我们也常要修改游标中的数据,即进行定位更新或删除游标所包含的数据。所以必须执行另外的更新或删除命令,并在WHERE 子句中重新给定条件才能修改到该行数据。但是如果在声明游标时使用了FOR UPDATE 语句,那么就可以在UPDATE 或DELETE命令中以WHERE CURRENT OF 关键字直接修改或删除当前游... 阅读全文
posted @ 2007-07-27 11:18 Athrun 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 13.5.1 关闭游标 1、使用CLOSE 命令关闭游标 在处理完游标中数据之后必须关闭游标来释放数据结果集和定位于数据记录上的锁。CLOSE 语句关闭游标,但不释放游标占用的数据结构。如果准备在随后的使用中再次打开游标,则应使用CLOSE 命令。其关闭游标的语法规则为: CLOSE { { [GLOBAL] cursor_name } | cursor_variable_name... 阅读全文
posted @ 2007-07-27 11:17 Athrun 阅读(829) 评论(0) 推荐(0) 编辑
摘要: 当游标被成功打开以后,就可以从游标中逐行地读取数据,以进行相关处理。从游标中读取数据主要使用FETCH 命令。其语法规则为: 各参数含义说明如下: •NEXT 返回结果集中当前行的下一行,并增加当前行数为返回行行数。如果FETCH NEXT是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。 •PRIOR 返回结果集中当前行的前一行,并减少当前行数为返回行行... 阅读全文
posted @ 2007-07-27 11:15 Athrun 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 打开游标游标在声明以后,如果要从游标中读取数据必须打开游标。打开一个Transact-SQL服务器游标使用OPEN 命令,其语法规则为: OPEN { { [GLOBAL] cursor_name } | cursor_variable_name} 各参数说明如下: •GLOBAL 定义游标为一全局游标。 •cursor_name 为声明的游标名字。如果一个全局游标和一... 阅读全文
posted @ 2007-07-27 11:13 Athrun 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序; 1.DECLARE 游标 2.OPEN 游标 3.从一个游标中FETCH 信息 4.CLOSE 或DEALLOCATE 游标 通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容: 游标名字 数据来源(表和列) 选取条件 属性(仅读或可修改) 其语法格式如下: DECLARE cu... 阅读全文
posted @ 2007-07-27 11:12 Athrun 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 本章前半部分提供了在MS SQL SERVER 中应用游标所应具有的有关游标的必要知识和各种语法。从中读者可以了解游标的优点、种类、作用、学会如何定义、打开、存取、关闭、释放游标以及游标的应用。除此之外,在本章的后半部分我们介绍了视图和用户自定义函数,使读者了解视图的众多优点,比如简化操作、提高数据安全性;了解如何创建、管理视图和用户自定义函数;了解如何在存储过程和批处理中调用用户自定义函数等... 阅读全文
posted @ 2007-07-27 11:10 Athrun 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 如果要显示作用于表上的触发器究竟对表有哪些操作,必须查看触发器信息。在MS SQL Server 中,有多种方法查看触发器信息。在本节我们将介绍两种常用的方法,即通过MS SQL Server 的管理工具 Enterprise Manager 以及系统存储过程sp_help sp_helptext 和sp_depends。 12.11.1 使用Enterprise Manager 显示触发... 阅读全文
posted @ 2007-07-27 11:09 Athrun 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 在触发器的应用中,常会遇到这种情况,即被触发的触发器试图更新与其相关联的原始的目标表,从而使触发器被无限循环地触发。对于该种情况,不同的数据库产品提供了不同的解决方案有些DBMS 对一个触发器的执行过程采取的动作强加了限制,有些DBMS 提供了内嵌功能,允许一个触发器主体对正在进行的触发器所处的嵌套级别,另一些DBMS 提供了一种系统设置,控制是否允许串联的触发器处理,最后一些DBMS 对可能... 阅读全文
posted @ 2007-07-27 11:07 Athrun 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 在以上部分我们讨论了触发器的优缺点、工作原理以及创建触发器的具体方法。接下来我们将阐述各种不同复杂程度的触发器的应用。 12.9.1 插入型触发器的应用 12.9.1 插入型触发器的应用 更新型触发器有两种类型:通常意义上的更新型触发器和用于检查列改变的更新型触发器,这主要是因为更新操作可以涉及到数据项。 通常意义上的更新型触发器; 在前面我们已经提到更新操作包... 阅读全文
posted @ 2007-07-27 11:05 Athrun 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 在本章第五节我们已经指出SQL Server 2000 支持AFTER 和INSTEAD OF 两种类型的触发器。其中INSTEAD OF 触发器是SQL Server 2000 的新添加的功能,AFTER 触发器等同于以前版本中的触发器。当为表或视图定义了针对某一操作(INSERT、 DELETE、 UPDATE) 的INSTEAD OF 类型触发器且执行了相应的操作时,尽管触发器被触发,但... 阅读全文
posted @ 2007-07-27 11:03 Athrun 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 从以上的介绍中我们可以看出触发器具有强大的功能,那么MS SQL Server 是如何管理触发器来完成这些任务呢?下面我们将对其工作原理及实现做较为详细的介绍。 每个触发器有两个特殊的表:插入表和删除表。这两个表是逻辑表,并且这两个表是由系统管理的,存储在内存中,不是存储在数据库中,因此不允许用户直接对其修改。这两个表的结构总是与被该触发器作用的表有相同的表结构。这两个表是动态驻留在内存中... 阅读全文
posted @ 2007-07-27 11:02 Athrun 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 上面介绍了有关触发器的概念、作用和一些基本问题,下面我们将分别介绍在MS SQLServer 中如何用SQL Server 管理工具Enterprise Manager 和Transaction_SQL 来创建触发器。 在创建触发器以前必须考虑到以下几个方面: CREATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它... 阅读全文
posted @ 2007-07-27 10:57 Athrun 阅读(795) 评论(0) 推荐(0) 编辑
摘要: 在上面几节我们介绍了一般意义的存储过程,即用户自定义的存储过程和系统存储过程。本节将介绍一种特殊的存储过程,即触发器。在余下各节中我们将对触发器的概念、作用以及对其的使用方法作详尽介绍,使读者了解如何定义触发器,创建和使用各种不同复杂程度的触发器。 12.5.1 触发器的概念及作用 触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的... 阅读全文
posted @ 2007-07-27 10:55 Athrun 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 系统存储过程就是系统创建的存储过程,目的在于能够方便地从系统表中查询信息或完成与更新数据库表相关的管理任务或其它的系统管理任务。系统过程以“sp_"_ 为开头,在Master 数据库中创建并保存在该数据库中,为数据库管理者所有。一些系统过程只能由系统管理员使用,而有些系统过程通过授权可以被其它用户所使用。 系统存储过程主要包括以下几类:(这里主要给出每类系统过程中经常使用的系统过程) ... 阅读全文
posted @ 2007-07-27 10:54 Athrun 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 12.3.1 查看存储过程 存储过程被创建以后,它的名字存储在系统表sysobjects 中;它的源代码存放在系统表syscomments 中。可以通过MS SQL Server 提供的系统存储过程来查看关于用户创建的存储过程信息。 1 通过Enterprise Manager 管理工具同样可以查看存储过程的源代码 其操作如下: (1) 启动Enterprise Manager... 阅读全文
posted @ 2007-07-27 10:52 Athrun 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 在MS SQL Server 2000 中,创建一个存储过程有两种方法:一种是使用Transaction-SQL 命令Create Procedure, 另一种是使用图形化管理工具Enterprise Manager。 用Transaction- SQL 创建存储过程是一种较为快速的方法,但对于初学者,使用Enterprise Manager 更易理解,更为简单。 当创建存储过程时,需要确... 阅读全文
posted @ 2007-07-27 10:50 Athrun 阅读(1274) 评论(1) 推荐(0) 编辑
摘要: 在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就 本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQL Server 2000 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。 12.1.1 存储过程的概念 存储过程(St... 阅读全文
posted @ 2007-07-27 10:48 Athrun 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 11.5.1 锁的概念 锁(Lock) 是在多用户环境下对资源访问的一种限制。机制当对一个数据源加锁后,此数据源就有了一定的访问限制。我们就称对此数据源进行了“锁定”。在SQL Server中,可以对以下的对象进行锁定: 数据行(Row):数据页中的单行数据; 索引行(Key):索引页中的单行数据,即索引的键值; 页(Page):页是SQL Server 存取数据的基本单位,其大小为8K... 阅读全文
posted @ 2007-07-27 10:29 Athrun 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 11.4.1 事务的由来 使用DELETE 命令或UPDATE 命令对数据库进行更新时一次只能操作一个表,这会带来数据库的数据不一致的问题。例如:企业取消了后勤部,需要将‘后勤部’从department表中删除,要修改department 表,而employee 表中的部门编号与后勤部相对应的员工也应删除。因此,两个表都需要修,改这种修改只能通过两条DELETE 语句进行。假设后勤部编号... 阅读全文
posted @ 2007-07-27 10:07 Athrun 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 11.3.1 UPDATE 语法 用户可以用UPDATE 语句来更新表中一列或多列数据值,其语法如下: 各参数说明如下: SET SET 子句用于指定更新的方法,即用的值取代相应的列的值。如果省略 WHERE 子句,那么表中的所有数据均会受到影响。在FROM 子句中指定的表或列的别名不能用于SET 子句中。 column_name 指定要更新数据的列。IDENTITY ... 阅读全文
posted @ 2007-07-27 09:55 Athrun 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 11.2.1 DELETE 语法 DELETE 语句用来从表中删除数据,其语法为: 各参数说明如下: FROM 此参数为可选选项,用于连接DELETE 关键字和要删除数据的对象名称。 table_name 指定要删除数据的表。 WITH ( [...n]) 指定一个或多个目标表允许的表提示。 view_name 指定用于删除数据的视图。 row... 阅读全文
posted @ 2007-07-27 09:52 Athrun 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 一个数据库能否保持信息的正确性、及时性、很大程度上依赖于数据库的更新功能的强弱与实时。数据库的更新包括插入、删除、修 改(也称为更新)三种操作。本章将分别讲述如何使用这些操作,以便有效地更新数据库。 在SQL Server 中可以在Enterprise Manager 中查看数据库表的数据时添加数据,但这种方式不能应付数据的大量插入,需要使用INSERT 语句来解决这个问题。 11... 阅读全文
posted @ 2007-07-27 09:45 Athrun 阅读(589) 评论(0) 推荐(0) 编辑
摘要: SQL Server 2000 的Standard Edition 和Enterprise Edition 版本提供了对表数据中字符串的复杂检索功能---全文检索(Full-Text Searches)。此功能需要在安装时通过自定义安装选项来添加。 10.7.1 全文索引和目录 全文检索是通过使用全文索引(Full-Text Index)来实现的。一个全文索引中存储了表的数据中有确切含... 阅读全文
posted @ 2007-07-27 09:42 Athrun 阅读(1193) 评论(1) 推荐(0) 编辑
摘要: 查询的信息往往需要保存下来,以便使用。在用SELECT 语句查询数据时,可以设定将数据存储到一个新建的表中或变量中。 10.6.1 存储查询结果到表中 使用SELECT…INTO 语句可以将查询结果存储到一个新建的数据库表或临时表中。如果要将查询结果存储到一个表而不是临时表中,那么在使用SELECT…INTO 语句前应确定存储该表的数据库的“Select into/bulk copy ... 阅读全文
posted @ 2007-07-27 09:25 Athrun 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 在一个SELECT 语句的WHERE 子句或HAVING 子句中嵌套另一个SELECT 语句的查询称为嵌套查询,又称子查询。子查询是SQL 语句的扩展,其语句形式如下: SELECT [,...] FROM WHERE [表达式] (SELECT [,...] FROM [GROUP BY HAVING [比较运算符] (SELECT [,...] FROM ... 阅读全文
posted @ 2007-07-27 09:23 Athrun 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 数据库中的各个表中存放着不同的数据,用户往往需要用多个表中的数据来组合、提炼出所需要的信息。如果一个查询需要对多个表进行操作,就称为连接查询。连接查询的结果集或结果表,称为表之间的连接连接。查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。 连接查询分为等值连接查询、非等值连接查询、自连接查询、外部连接查询和复合条件连接查询。 10.3.1 等值与... 阅读全文
posted @ 2007-07-27 09:01 Athrun 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 从本节开始,我们将用大量的实例来讲述SELECT 语句的应用。首先从最简单也是最常用的单表查询开始。 10.2.1 选择列 (1) 用SELECT 子句来指定查询所需的列,多个列之间用逗号分开 (2) 可以使用符号“*”来选取表的全部列 (3) 在查询结果中添加列 10.2.2 选择行 (1) 使用WHERE 子句 用户在查询数据库时,往往并不需要... 阅读全文
posted @ 2007-07-27 08:28 Athrun 阅读(404) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 44 下一页