第一篇:网络数据库讲稿(表数据操作)
网络数据库讲稿
一、插入数据
P131 1.INSERT … VALUES …
(1)VALUES所提供的值的个数、顺序、数据类型,必须与字段名列表中的相一致。(2)关于NULL 和 DEFAULT
P133 CREATE TABLE NULLDEFAULT(ID SMALLINT IDENTITY(1,2), XM CHAR(8)NOT NULL, XB CHAR(2)DEFAULT '男', NL TINYINT, MZ CHAR(10)NOT NULL DEFAULT '汉族')INSERT NULLDEFAULT values('张三','女',30,'回族')
①如果省略了列名表和值表中的一列,那么当该列有默认值存在时,将使用默认值;如果默认值不存在,SQL会尝试使用NULL值。
INSERT NULLDEFAULT(XM,MZ)values('张三','回族')INSERT NULLDEFAULT(XM)values('张三')
如果列已声明了NOT NULL,尝试的NULL值会失败。
INSERT NULLDEFAULT(XM,MZ)values(NULL,'回族')INSERT NULLDEFAULT(MZ)values('回族')②如果在值表中明确指定了NULL,那么即使该列默认值存在,也仍会插入NULL值(假设该列允许NULL)。
③当在一个允许NULL且没有声明默认值的列中使用DEFAULT,会在该列插入NULL值。
INSERT NULLDEFAULT values('张三',NULL,default,'蒙古族')④如果在一个声明NOT NULL且没有声明默认值的列中指定NULL或DEFAULT、或者省略了该值,会导致错误。
INSERT NULLDEFAULT values(NULL,NULL,default,'蒙古族')INSERT NULLDEFAULT values(DEFAULT,NULL,default,'蒙古族')INSERT NULLDEFAULT(MZ)values('回族')⑤可以把NULL插入到允许NULL且没有默认值的列中。
INSERT NULLDEFAULT(XM,NL)values('张三',NULL)⑥具有标识属性的列中不能使用关键字DEFAULT,不能在列名表中和值表中列出具有标识属性的列和值。
INSERT NULLDEFAULT values(DEFAULT,DEFAULT,NULL,default,'蒙古族')2.INSERT … SELECT … 3.SELECT … INTO …
二、更新数据
P137
三、删除数据
P141 1.DELETE 2.TRUNCATE TABLE
四、OUTPUT子句
P307 内存逻辑表INSERTED和DELETED。
网络数据库讲稿
INSERT NULLDEFAULT(XM)OUTPUT INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL,INSERTED.MZ values('赵一')INSERT NULLDEFAULT OUTPUT INSERTED.ID values('钱二','女',30,'回族')INSERT NULLDEFAULT OUTPUT INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL values('孙三',NULL,default,'蒙古族')UPDATE NULLDEFAULT SET MZ='维吾尔族' OUTPUT DELETED.ID,DELETED.XM,DELETED.XB,DELETED.MZ, INSERTED.ID,INSERTED.XM,INSERTED.XB,INSERTED.NL,INSERTED.MZ WHERE XM='赵一'
如果使用INTO子句,INTO子句中的表必须已存在。
CREATE TABLE ABC(ID SMALLINT, XM CHAR(8)NOT NULL, XB CHAR(2)DEFAULT '男', NL TINYINT, MZ CHAR(10)NOT NULL DEFAULT '汉族')
UPDATE NULLDEFAULT SET MZ='维吾尔族' OUTPUT DELETED.ID,DELETED.XM,DELETED.XB,DELETED.NL,DELETED.MZ INTO ABC WHERE XM='张三' OR XM='李四'
第二篇:数据库--数据查询和操作
《数据查询与操作》实验
一、实验目的与要求
1、理解简单查询和复合查询的意义。
2、掌握SELECT语句和各子句的使用。
3、掌握多表查询和子查询的使用。
4、掌握INSERT、UPDATE和DELETE语句的使用。
二、实验平台
1、操作系统:Windows XP或Windows 2003
2、数据库管理系统:SQL Server 2005
三、实验内容
1.在“人事管理系统”中,新增一个员工信息(员工编号„100508‟、员工姓名„小龙女‟、所在部门编号„10001‟、籍贯„河南‟)。
insert into 员工信息(员工编号,员工姓名,所在部门编号,籍贯)values('100508','小龙女','10001','河南')
2.将“人事管理系统”数据库的“员工信息”表中籍贯为“河南”并且所在部门编号为”10001”数据插入到“新员工信息”表中。
insert into 新员工信息(员工编号,员工姓名,所在部门编号)select 员工编号,员工姓名,所在部门编号from 员工信息 where 籍贯='河南'and 所在部门编号='10001'
3.在“人事管理系统”数据库“部门信息”表中,将部门的员工人数设置为10。
4.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
5.在“人事管理系统”数据库中对部门进行了重组和调整,原来编号为10006的部门名称变为“市场开发部”,人数也调整为20人。
6.在“人事管理系统”数据库中,编号为“100503”的新员工升级为正式员工,需要在“新员工信息”表中删除他的记录。
7.在“人事管理系统”数据库中,删除“新员工信息”表中所有在编号为“10005”部门工作的员工记录。
delete 20 percent from 员工信息
8.在“人事管理系统”数据库中,需要删除20%的员工信息。
9.在“教务管理系统”数据库“班级信息”表中,查询分配了班主任的班级信息。
10.在“教务管理系统”数据库“学生信息”表中,根据籍贯查询各省学生人数,并显示省份和人数信息。
11.在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息。
select *
from 课程信息 where 课程编号In(select 课程编号
from 成绩表
group by 课程编号 having avg(成绩)>70)
12.在commidtysell数据库中,根据相关表的内容,查询销售同类产品的商场编号(去除相同的行)。
select distinct e1.empID as 商场编号 from EmporiumSell e1,EmporiumSell e2 where e1.ProdID=e2.ProdID
13.在commidtysell数据库中,根据相关表的内容,查询买出产品数量最多的商场编号和销售总量信息。
select e1.EmpID,sum(e1.SellAmout)as 销售总量 from EmporiumSell e1 group by e1.EmpID having sum(e1.SellAmout)>=all(select sum(SellAmout)from EmporiumSell group by EmpID
14.在TeachingManageSYS数据库中,根据相关表的内容,统计年龄大于平均年龄的教师的Tname、Tsex、Tage、Trank,所教授课程的Cname,Credit,CouresHour。
select T.Tname,T.Tsex,T.Tage,T.Trank,Cname,Credit,CouresHour from Teach,CourseInfo,TeacherInfo T where T.Tno=Teach.Tno and Teach.Cno=CourseInfo.Cno and Tage>(select avg(Tage)from TeacherInfo)
15.在“人事管理系统”数据库“员工信息”表中,查询工龄大于4年的员工信息
16.在“人事管理系统”数据库“员工信息”表中,把政治面貌是“党员”的职工信息保存到表名为“党员信息”新表中。
将学生“陈霞”所在班级的其他学生并且成绩不合格的学生成绩删除
select 成绩表.学号,成绩表.成绩,学生信息.姓名,学生信息.班级编号 from 成绩表,学生信息
where 成绩表.成绩<60 and 学生信息.班级编号in(select 班级编号 from 学生信息 where 姓名='陈霞')
17.在“人事管理系统”数据库中,使用TRUNCATE TABLE语句删除“党员信息”表中的所有记录。
18.在“人事管理系统”数据库“员工信息”表中,把员工“李朋”所任职位更改为“副经理”。
19.查询“学生信息”表中姓名包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
20.查询“学生信息”表中姓氏为“徐”的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
21.从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学号、姓名和班级名称。(使用子查询)
22.查询“学生信息”表中姓名不包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
23.在“教务管理系统”数据库中,查询还未分配班主任的班级信息。
24.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
25.查询数据表ProductInfo中前5条记录。
26.从ProductInfo表中,查询产品名称为“丙电视机”的产品信息。
27.从ProductInfo表中,查询FactAddr为“四川绵阳”或“广东东莞”,同时StockAmount大于110的产品的ProdID、StockAmount和FactAddr信息,并且给列名分别取别名为产品编号、库存数量和厂商地址。
28.从ProductInfo表中,查询StockAmount在250和400(包含200和400)之间的产品的ProdName和StockAmount。
29.创建一个学生补考表,表中数据来自成绩表,条件为成绩小于60分,要求补考表中仅显示学生的学号和补考课程的编号。编写SELECT INTO语句完成这操作。
30.在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。(多表查询)
31.在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息。
select 学生信息.学号,学生信息.姓名,学生信息.性别,班级信息.班级编号,班级信息.班级名称,班级信息.年级 from 学生信息,班级信息
where 学生信息.班级编号=班级信息.班级编号
and 学生信息.姓名='朱文娟'
32.查询空调产品在ProductInfo的相关信息,要求该产品在EmporiumSell中的销售总量超过10台。
33.在“教务管理系统”数据库中,查询出任意一个大于平均成绩的学生的学号、姓名、班级编号、课程编号和成绩信息。
select 学生信息.学号,学生信息.姓名,学生信息.班级编号,成绩表.课程编号,成绩表.成绩 from 学生信息,成绩表
where 学生信息.学号=成绩表.学号and 成绩>any(select avg(成绩)from 成绩表
group by 课程编号)
34.在“教务管理系统”数据库中,对于成绩大于等于90的数据行进行查询,并返回考试成绩的学生的学号、姓名、性别、籍贯和所在班级名称及年级信息。
select 学生信息.学号,姓名,性别,籍贯,班级名称,班级信息.年级 from 学生信息,成绩表,班级信息
where 学生信息.班级编号=班级信息.班级编号and 学生信息.学号=成绩表.学号and 成绩>=90
35.在“人事管理系统”数据库的“员工信息”表中,查询“所任职位”为“经理”的员工编号和员工姓名信息,并为其增加新列“所在位置”,列的内容为“员工信息表”;从“部门信息”表中查询所有的部门编号和部门名称信息,并定义新增列的内容为“部门信息表”;最后将两个查询结果联合在一起。
select 员工编号,员工姓名 from 员工信息
where 所任职位='经理' alter table 员工信息 add 所在位置 nvarchar(20)
select 部门编号,部门名称 from 部门信息
alter table 部门信息
add 部门信息表 nvarchar(20)
select 员工编号,员工姓名
from 员工信息 FULL join 部门信息
on 员工信息.所在部门编号=部门信息.部门编号
36.在“教务管理系统”数据库的“学生信息”表和“成绩”表中,查询出所有考试及格的学生的成绩信息,包括学生的学号、姓名、性别、年级、班级编号及考试成绩,并且按照成绩进行降序排列。
select 学生信息.学号,姓名,性别,年级,班级编号,成绩 from 学生信息,成绩表 group by 学生信息.学号 having 成绩>60 order by 成绩desc
37.从“教务管理系统”数据库中的“学生信息”和“班级信息”两表中,查询学生和对应的班级信息,要求返回的结果中包含学生的学号、姓名、性别和班级名称及年级。
select 学号,姓名,性别,班级信息.年级,班级名称 from 学生信息,班级信息
where 学生信息.班级编号=班级信息.班级编号
38.在“教务管理系统”数据库的“学生信息”表和“成绩”表中,查询所有学生的考试成绩信息,包括学生学号、姓名、课程编号和成绩信息。(左、右、全外连接)
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息left join 成绩表 on 学生信息.学号=成绩表.学号
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息right join 成绩表 on 学生信息.学号=成绩表.学号
select 学生信息.学号,姓名,课程编号,成绩 from 学生信息full join 成绩表 on 学生信息.学号=成绩表.学号
39.在“人事管理系统”数据库中,对“员工信息”表和“部门信息”表进行交叉查询,要求查询返回所任职位为“职员”的员工编号、员工姓名、所任职位、文化程度和部门名称,并按照员工编号降序排序列。
select 员工编号,员工姓名,所任职位,文化程度,部门名称 from 员工信息,部门信息
where 员工信息.所在部门编号=部门信息.部门编号
四、实验过程
写出相应的T-SQL语句,并写出T-SQL语句执行结果的前两行记录。
五、实验总结
简述实验完成情况、实验过程中各自碰到的问题、各自对实验目的掌握情况。
第三篇:网络数据库讲稿(查询)
网络数据库讲稿
一、简单的SELECT
P95 1.SELECT … FROM …(1)DISTINCT(2)TOP n [PERCENT](3)字段别名
有三种书写格式。
2.WHERE子句(SELECT … FROM … WHERE …)
P101(1)比较运算符(2)逻辑运算符
(3)范围运算符BETWEEN(4)列表(包含)运算符 IN(5)字符匹配运算符LIKE及通配符(6)空值NULL 3.ORDER BY子句(SELECT … FROM … WHERE … ORDER BY …)
P107 ORDER BY子句必须放在SELECT语句的最后。
4.GROUP BY子句(SELECT … FROM … WHERE …GROUP BY … ORDER BY …)P109(1)GROUP BY子句中的列名必须是原表中的列名,不能是别名。(2)当SELECT子句中有聚合函数时,GROUP BY子句实现分组统计。
(3)当SELECT子句中同时有字段名列和聚合函数列时,必须使用GROUP BY子句。例如
select 班级,SUM(已修学分)from 学生GROUP BY 班级
(4)在SELECT子句中出现的列名必须出现在GROUP BY子句中、或聚合函数中。GROUP BY子句中的列名则不一定出现在SELECT子句中。(5)ROLLUP返回第一个分组列的统计行。例如:
select 班级,性别,SUM(已修学分)from 学生GROUP BY 班级,性别WITH ROLLUP(6)CUBE是ROLLUP的扩展。(7)ALL短语
P109 select 班级,性别,SUM(已修学分)from 学生
WHERE已修学分>4 GROUP BY ALL 班级,性别
ALL不能与WITH同用。6.HAVING子句
(SELECT … FROM … WHERE …GROUP BY … HAVING … ORDER BY …)P111(1)HAVING应与GROUP BY配对使用,否则没必要使用。(2)HAVING的主要作用是第二次筛选。
(3)HAVING中可以包含聚合函数(WHERE中不可以)。
(4)HAVING中非聚合函数中的字段名,必须出现在GROUP BY中。(5)SELECT列表中命名的别名,不能在HAVING中使用。7.COMPUTE子句,按排序字段分组求和。
SELECT 姓名,分数FROM 学生,成绩WHERE 学生.学号=成绩.学号 ORDER BY 姓名COMPUTE SUM(分数)
SELECT 姓名,分数FROM 学生,成绩WHERE 学生.学号=成绩.学号 ORDER BY 姓名COMPUTE SUM(分数)BY 姓名
网络数据库讲稿
SELECT 姓名,分数FROM 学生,成绩WHERE 学生.学号=成绩.学号 ORDER BY 姓名COMPUTE SUM(分数)BY 姓名COMPUTE SUM(分数)
Compute By 必须与 Order By 子句一起使用,而且Compute By 子句中的统计列名列表也必须与之相同。
8.SELECT INTO,将查询结果保存到永久表中。
P136
二、多表查询
P112 1.内、外连接
内外连接中用ON<条件> 2.交叉连接
交叉连接中用WHERE<条件>,用WHERE<条件>的交叉连接等同于内连接。3.合并两个查询
(1)联合查询
P120 SELECT 员工编号,员工姓名,'员工信息表' FROM 员工信息WHERE 所任职位='经理' UNION SELECT 部门编号,部门名称,'部门信息表' FROM 部门信息
(2)INTERSECT
P305 SELECT 学号FROM 成绩表 INTERSECT SELECT 学号FROM 学生信息
(3)EXCEPT SELECT 学号FROM 学生信息 EXCEPT SELECT 学号FROM 成绩表
三、子查询
P121
第四篇:网络数据库讲稿(触发器)
网络数据库讲稿
3/26/2013
触发器
P191
一、触发器概述
1.是一种特殊的存储过程。
2.不能被显式调用,只能由一些特定的操作(命令)引发(激活),这些命令是:INSERT、DELETE、UPDATE、CREATE、ALTER、DROP、GRANT、DENY、REVOKE等。3.每个触发器由三部分组成
①触发器名称:命名规则与变量名、存储过程名相同; ②激活该触发器的操作(命令动词)。③一个存储过程。
4.使用触发器可强制实现数据的一致性和完整性。
二、触发器的分类(按引发命令分类)及其工作原理
1.DML触发器(表级)(1)触发器必须依附于某一个表(触发器必须被包含在某一个表中)。(2)激活该触发器的操作:可以是INSERT、DELETE、UPDATE之一。(3)当上述操作发生在包含触发器的表上时,触发器中的过程被自动执行。(4)支持两种类型的触发器: ①AFTER 可以为同一表的同一操作定义多个该类型的触发器,并可定义执行顺序; ②INSTEAD OF 同一表的同一操作只能定义一个该类型的触发器。(5)工作原理
P193 临时逻辑表INSERTED和DELETED。2.DDL触发器(数据库级和服务器级)(1)触发器必须依附于某一个数据库(触发器必须被包含在某一个数据库中)。
(2)激活该触发器的操作:可以是CREATE、ALTER、DROP、GRANT、DENY、REVOKE等之一。
(3)当上述操作发生在包含触发器的数据库上时,触发器中的过程被自动执行。(4)只有AFTER型触发器。
三、创建DML触发器
P194 用命令CREATE TRIGGER创建 例: 1.
CREATE TRIGGER 增加学生学分 ON 成绩
//只能增加一条记录
FOR INSERT AS DECLARE @XH CHAR(6),@KCH CHAR(8),@FS DECIMAL(4,1)SELECT @XH=学号,@KCH=课程编号,@FS=分数 FROM INSERTED IF @FS>=60
网络数据库讲稿
3/26/2013
UPDATE 学生 SET 已修学分
=已修学分+(SELECT 学分 FROM 课程 WHERE 课程编号=@KCH)
WHERE 学号=@XH 2.
CREATE TRIGGER 减少学生学分 ON 成绩 FOR DELETE AS UPDATE 学生 SET 已修学分=已修学分-(SELECT SUM(学分)FROM 课程 WHERE 课程编号 IN(SELECT DISTINCT 课程编号 FROM DELETED WHERE 学生.学号=DELETED.学号 AND 分数>=60))WHERE EXISTS(SELECT DISTINCT 课程编号 FROM DELETED WHERE 学生.学号=DELETED.学号 AND 分数>=60)3.CREATE TRIGGER 修改学生学分 ON 成绩 FOR UPDATE AS UPDATE 学生 SET 已修学分=已修学分-(SELECT SUM(学分)FROM 课程 WHERE 课程编号 IN(SELECT DISTINCT 课程编号 FROM DELETED WHERE 学生.学号=DELETED.学号 AND 分数>=60))WHERE EXISTS(SELECT DISTINCT 课程编号 FROM DELETED WHERE 学生.学号=DELETED.学号 AND 分数>=60)UPDATE 学生 SET 已修学分=已修学分+(SELECT SUM(学分)FROM 课程WHERE 课程编号 IN(SELECT DISTINCT 课程编号 FROM INSERTED WHERE 学生.学号=INSERTED.学号 AND 分数>=60))WHERE EXISTS(SELECT DISTINCT 课程编号 FROM INSERTED WHERE 学生.学号=INSERTED.学号 AND 分数>=60)
4.“修改学生学分”也可改为:
CREATE TRIGGER 修改学生学分 ON 成绩 FOR UPDATE AS UPDATE 学生 SET 已修学分=(SELECT SUM(学分)FROM 课程 WHERE 课程编号 IN
网络数据库讲稿
3/26/2013(SELECT 课程编号 FROM 成绩
WHERE 学生.学号=成绩.学号 AND 分数>=60))
然后可执行下列命令,并检验执行结果。
--INSERT INTO 成绩 VALUES('200202','L2020308',83)--INSERT INTO 成绩 VALUES('200202','L2030501',80)--INSERT INTO 成绩 VALUES('200202','L2030506',75)--DELETE FROM 成绩 WHERE 学号='200202' AND LEFT(课程编号,1)='L'--UPDATE 成绩 SET 分数=80 WHERE 学号='200202' AND LEFT(课程编号,1)='L'
四、创建DDL触发器
P198 例: 1.P199 2.CREATE TRIGGER 禁删数据库ON ALL SERVER FOR DROP_DATABASE AS PRINT '请不要删除数据库!' ROLLBACK TRANSACTION
DROP DATABASE 订货管理
五、嵌套触发器和递归触发器
P199, P200
六、管理触发器
P201 1.查看 2.修改 3.禁用 4.删除
--根据成绩表计算每个学生的已修学分
update 学生set 已修学分=(select sum(学分)from 课程 where 课程编号in(select 课程编号from 成绩where 学生.学号=成绩.学号 and 分数>=60))
--修改插入触发器,使得向成绩表中插入多条记录,也能成功执行 CREATE TRIGGER 插入学生学分ON 成绩 FOR insert
网络数据库讲稿
3/26/2013 AS UPDATE 学生SET 已修学分=已修学分+(SELECT SUM(学分)FROM 课程 WHERE 课程编号IN(SELECT DISTINCT 课程编号FROM inserted WHERE 学生.学号=inserted.学号AND 分数>=60))WHERE EXISTS(SELECT DISTINCT 课程编号FROM inserted WHERE 学生.学号=inserted.学号AND 分数>=60)
select * from 成绩
select 学号,已修学分from 学生
INSERT INTO 成绩VALUES('200202','L2020308',83)INSERT INTO 成绩VALUES('200202','L2030501',80)INSERT INTO 成绩VALUES('200202','L2030506',75)INSERT INTO 成绩VALUES('200201','L2020308',83)INSERT INTO 成绩VALUES('200201','L2030501',80)INSERT INTO 成绩VALUES('200201','L2030506',75)
select * into 备份成绩from 成绩 //备份成绩表 select 学号,姓名,已修学分from 学生
insert into 成绩 select * from 成绩
INSERT INTO 成绩VALUES('200212','L2030506',75)
第五篇:网络数据库讲稿(复制)
网络数据库讲稿
4/20/2013
一、复制的基本概念
SQL Server复制是在数据库之间对数据和数据库对象进行复制和分发并且对于数据的修改进行同步,以确保其一致性的一组技术。使用复制可以将数据分发到不同位置,通过局域网、Internet分发给多个远程服务器站点;还可将多个用户和站点的数据进行合并。
二、复制模型
复制技术采用发布(出版)——订阅模型分发数据。
SQL Server复制模型由下列对象组成:发布服务器,分发服务器,订阅服务器,发布,项目,订阅。还有几个负责在发布服务器和订阅服务器之间复制和移动数据的复制进程:快照代理程序,分发代理程序,日志读取器代理程序,队列读取器代理程序,合并代理程序。1.服务器角色
参与复制的服务器根据任务不同可划分为以下角色: ①发布服务器:数据源所在的服务器。
②分发服务器:将出版物从发布服务器移动到订阅服务器。③订阅服务器 2.项目
3.发布(出版物)4.订阅 5.复制的类型 ①快照复制 ②事务复制 ③合并复制 6.复制代理程序
①快照代理程序:与所有复制类型一起使用。
②分发代理程序:与快照复制和事务复制一起使用。③合并代理程序:与合并复制一起使用。
④日志读取器代理程序:与事务复制一起使用。
⑤队列读取器代理程序:与快照复制或事务复制一起使用。
三、服务器的连接方式
1.发布服务器与分发服务器为同一物理服务器 2.发布服务器与分发服务器为不同物理服务器 3.发布者与再次发布者连接方式
4.多发布服务器单订阅服务器连接方式
四、配置复制
复制一般包括以下几个阶段:配置发布和分发,生成和应用初始快照,修改复制数据,同步和传播数据。
复制过程中各代理程序的调度由SQL Server Agent服务管理,应配置SQL Server Agent服务能够在系统启动的时候自动启动,并且在意外停止时能够自动重新启动,由于复制操作跨越多个服务器传输数据,所以SQL Server Agent服务的启动帐号应使用域用户帐号。1.配置分发服务器
网络数据库讲稿
4/20/2013 分发服务器是快照复制和事务复制的首要组件。在企业管理器中运行向导,右击【复制】,单击【配置发布、订阅服务器和分发】启动【配置发布和分发向导】。然后按提示进行。
配置完成后,系统在分发服务器上创建distribution系统数据库、复制文件夹、复制监视器。
2.配置发布服务器和创建出版物
出版物是准备发布的表、表中数据的子集或其它数据库对象的集合。出版物是订阅的单元。
在企业管理器中运行向导,右击【复制】,单击【新建/发布】启动【创建发布向导】,然后按提示进行。
在“指定项目”步骤,单击“项目默认值”或“对象”右端的省略号按钮,可设置快照属性。
可循环创建多个发布。
可查阅和修改已建发布的属性。
3.订阅
订阅是对发布到指定订阅服务器的数据或数据库对象的请求。一个订阅服务器可以向不同发布请求多个订阅。
订阅可在发布服务器上创建(强制订阅)或在订阅服务器上创建(请求订阅)。(1)强制订阅
在企业管理器中:工具/向导,展开【复制】,启动【创建强制订阅向导】,然后按提示进行。
(2)请求订阅 在企业管理器中:工具/向导,展开【复制】,启动【创建请求订阅向导】,然后按提示进行。
也可按教材P175的例子,先创建发布,再配置发布和分发服务器,最后创建订阅。