第一篇:網絡數據庫講稿(表數據操作)
網絡數據庫講稿
一、插入數據
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的例子,先創建發布,再配置發布和分發服務器,最后創建訂閱。