VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
Môn: Hệ quản trị CSDL phân tán – SQL Server
Đề tài: Quản lý điểm Sinh viên Trường Viện Đại học Mở Hà Nội
Giáo viên hướng dẫn: Phạm Công Hòa
Sinh Viên thực hiện: Nhóm 08 - Lớp 10B3
Nhóm trưởng Khúc Thị Hồng Anh
Nguyễn Đức Anh
Lê Văn Giang
Nguyễn Mạnh Thắng
Hà Nội - 5/2013
1
2.4.Mô hình cơ sở dữ liệu quan hệ 8
2.Thiết kế vật lý 8
2.1.Tạo cơ sở dữ liệu QLSV (QL điểm SV) 8
2.2.Tạo các bảng 9
2.3.Sơ đồ liên kết giữa các bảng 14
3.Xây dựng các VIEW cho CSDL 15
3.1Xem danh sách SINH VIÊN 15
3.2Xem danh sách PHÂN CÔNG CÔNG TÁC 15
3.3Xem thông tin Sinh viên có điểm giữa kỳ bằng 6 15
3.4Hiện sinh viên địa chỉ “Hà Nội” 16
3.5Hiện danh sách sản phẩm và loại tương ứng 16
3.6Hiện danh sách sinh viên có điểm chuyên cần 16
3.7Tạo view hiện tên sinh viên và điểm chuyên cần, giữa kỳ 17
4.Xây dựng các Procedure cho CSDL 18
4.1.Thủ tục tìm kiếm Sinh viên 18
4.2.Tạo thủ tục nhập sản phẩm cho bảng SANPHAM 18
4.3.Tính điểm trung bình của sinh viên 18
5.Xây dựng các Trigger cho Bảng 20
5.1.Tạo trigger hiển thị dữ liệu mỗi khi có dữ liệu mới được thêm vào
tblPhancongcongtac 20
5.2.Tạo trigger Đưa ra thông báo mỗi khi có dữ liệu được thêm vào bang
tblLop 20
5.3.Tạo trigger thông báo khi nhập vào của bảng Môn học 20
5.4.Tạo trigger thông báo khi thêm Môn học có số trình lớn hơn 4 21
6.Phân quyền và bảo mật CSDL 21
2
6.1.Đặt mật khẩu truy cập tới CSDL 21
6.2.Phân quyền 23
7.Phân tán CSDL 25
7.1.Tạo Link Server 25
7.2.Sử dụng phân mảnh dọc để phân chia CSDL của bài toán: 26
7.3.Sử dụng phân mảnh ngang để phân chia CSDL của bài toán: 27
3
Phát biểu bài toán
Bài toán quản lý điểm của sinh viên Trường Viện Đại học Mở Hà
Nội,
Trường có rất nhiều KHOA (vd: Khoa CNTT, Khoa Du Lịch,…) khác
nhau. Trong một KHOA lại có các HỆ ĐÀO TẠO khác nhau (Đại học, Cao
đẳng, Từ xa, Liên thông). Mỗi KHOA gồm nhiều LỚP với các khóa học khác
nhau xác định dựa vào năm vào trường. Mỗi KHOA có các GIẢNG VIÊN
phụ trách dậy nhiều MÔN HỌC, Tuy nhiên một MÔN HỌC cũng có thể được
nhiều GIẢNG VIÊN khác nhau giảng dậy. Mỗi môn học có số trình khác
nhau (được tính từ 2-6). Khi một SINH VIÊN học một MÔN HỌC nào đó
cần quản lý các ĐIỂM: chuyên cần, giữ kỳ, điểm thi (nếu thi lần 1 ko đạt có
thể được thi lại lần 2, nếu thi lại lần 2 vẫn không đạt phải học lại. Số lần học
lại cũng được lưu trữ để đánh giá sinh viên sau này).
4
1. Thiết kế CSDL mức logic – Mô hình CSDL quan hệ
1.1Xác định thực thể và các thuộc tính
a) Thực thể: KHOA
Thuộc tính: #Makhoa, TenKhoa, Dienthoai, Website.
b) Thực thể: HEDAOTAO
Thuộc tính: #Hedaotao, Namdaotao.
c) Thực thể: LOP
Thuộc tính: #Malop, TenLop, Namvaotruong.
d) Thực thể: GIANGVIEN
Thuộc tính: #MaGV, TenGV, Diachi, Sdt.
e) Thực thể: MONHOC
Thuộc tính: #Mamonhoc, Tenmonhoc, Sotrinh.
f) Thực thể: SINHVIEN
Thuộc tính: #MaSV, HotenSV, Diachi, Gioitinh, Ngaysinh.
g) Thực thể: DIEM
Thuộc tính: #MaSV, #Mamonhoc, #Solan, Diemchuyencan,
Diemgiuaky, Diemthilan1, Diemthilan2.
5
2.2. Xác định quan hệ
6
KHOA LOP
Có
1 N
KHOA GIANGVIEN
Có
N1
HEDAOTAO LOP
Có
1 N
LOP SINHVIEN
Có
N1
GIANGVIEN MONHOC
Dậy
NM
SINHVIEN DIEM
Có
N
Solan
1
MONHOC DIEM
Có
N
Diemthi
2
1
Diemthi
1
Diemgiuak
y
Diemchuyenca
n
2.3. Sơ đồ E - R
7
2.4. Mô hình cơ sở dữ liệu quan hệ
KHOA( Makhoa, TenKhoa, Dienthoai, Website).
HEDAOTAO( Hedaotao, Namdaotao).
LOP(Malop, TenLop, Namvaotruong).
GIANGVIEN(MaGV, TenGV, Diachi, Sdt).
MONHOC(Mamonhoc, Tenmonhoc, Sotrinh).
PHANCONGCONGTAC(MaGV, Mamonhoc)
SINHVIEN(MaSV, HotenSV, Diachi, Gioitinh, Ngaysinh).
DIEM(MaSV, Mamonhoc, Solan, Diemchuyencan,Diemgiuaky,
Diemthilan1, Diemthilan2)
2.5. Các ràng buộc
Tên khoa phải là duy nhất
Hệ đào tạo chỉ có thể là: Đại học, Cao đẳng, Từ xa, Liên thông
Năm đào tạo từ 2-4 năm.
Năm vào trường 1990-2999
Số trình từ 2-6
Ngày sinh của sinh viên có tuổi >=17
Giới tính chỉ có thể là Nam(TRUE) hoặc Nữ(FALSE)
Số lần từ 1-3
Điểm chuyên cần, giữa kỳ, điểm thi1, điểm thi2 trong khoảng 0-10
2. Thiết kế vật lý
2.1. Tạo cơ sở dữ liệu QLSV (QL điểm SV)
Create Database QLSV
On( Name = QLSV_Data,
FileName = 'D:\SQL Server\QLSV_Data.mdf',
8
Size = 10MB,
Maxsize=100MB,
FileGrowth = 10%)
Log On( Name = QLSV_Log,
FileName = 'D:\SQL Server\QLSV_Log.ldf',
Size = 2MB,
Maxsize=Unlimited,
FileGrowth = 10%)
2.2. Tạo các bảng
3.1.1. Tạo bảng KHOA
CREATE TABLE tblKhoa
( PK_sMaKhoa VARCHAR(25) PRIMARY KEY NOT NULL,
sTenKhoa NVARCHAR(25) UNIQUE NOT NULL,
sDienthoai VARCHAR(25) NOT NULL,
sWebsite VARCHAR(25) NOT NULL
)
3.1.2. Tạo bảng GIẢNG VIÊN
CREATE TABLE tblGiangvien
( PK_sMaGV VARCHAR(25) PRIMARY KEY NOT NULL,
sTenGV NVARCHAR(25)NOT NULL,
sDiachiGV NVARCHAR(255),
sSdt VARCHAR(25),
FK_sMaKhoa VARCHAR(25) NOT NULL
CONSTRAINT PK_sMaKhoa FOREIGN KEY (FK_sMaKhoa)
REFERENCES tblKhoa(PK_sMaKhoa)
ON DELETE CASCADE
ON UPDATE CASCADE
)
9
3.1.3. Tạo bảng MÔN HỌC
CREATE TABLE tblMonhoc
( PK_sMaMonhoc VARCHAR(25) PRIMARY KEY NOT NULL,
sTenMonhoc NVARCHAR(25) NOT NULL,
iSotrinh INTEGER NOT NULL
CONSTRAINT chk_Sotrinh CHECK (iSotrinh BETWEEN 2 and 6)
)
3.1.4. Tạo bảng PHÂN CÔNG CÔNG TÁC
CREATE TABLE tblPhancongcongtac
(FK_sMaGV VARCHAR (25) NOT NULL
CONSTRAINT PK_sMaGV FOREIGN KEY (FK_sMaGV)
REFERENCES tblGiangvien(PK_sMaGV)
ON DELETE CASCADE
ON UPDATE CASCADE,
FK_sMaMonhoc VARCHAR (25) NOT NULL
CONSTRAINT PK_sMaMonhoc FOREIGN KEY (FK_sMaMonhoc)
REFERENCES tblMonhoc(PK_sMaMonhoc)
ON DELETE CASCADE
ON UPDATE CASCADE,
PRIMARY KEY (FK_sMaGV,FK_sMaMonhoc)
)
3.1.5. Tạo bảng HỆ ĐÀO TẠO
CREATE TABLE tblHedaotao
( PK_sHedaotao NVARCHAR(25) PRIMARY KEY NOT NULL
CONSTRAINT chk_Hedaotao CHECK (PK_sHedaotao IN (N'Đại học',
N'Cao đẳng', N'Từ xa', N'Liên thông') ),
iNamdaotao INTEGER NOT NULL
10
CONSTRAINT chk_Namdaotao CHECK (iNamdaotao BETWEEN 2
and 4)
)
3.1.6. Tạo bảng LỚP
CREATE TABLE tblLop
( FK_sMaKhoa VARCHAR(25) NOT NULL
CONSTRAINT FK_sMaKhoa FOREIGN KEY (FK_sMaKhoa)
REFERENCES tblKhoa(PK_sMaKhoa)
ON DELETE CASCADE
ON UPDATE CASCADE,
FK_sHedaotao NVARCHAR(25) NOT NULL
CONSTRAINT PK_sHedaotao FOREIGN KEY (FK_sHedaotao)
REFERENCES tblHedaotao(PK_sHedaotao)
ON DELETE CASCADE
ON UPDATE CASCADE,
PK_sMalop VARCHAR(25) PRIMARY KEY NOT NULL,
sTenlop NVARCHAR(25) NOT NULL,
iNamvaotruong INTEGER NOT NULL
CONSTRAINT chk_Namvaotruong CHECK(iNamvaotruong
BETWEEN 1990 and 2999)
)
3.1.7. Tạo bảng SINH VIÊN
CREATE TABLE tblSinhvien
( FK_sMaLop VARCHAR(25) NOT NULL
CONSTRAINT FK_sMaLop FOREIGN KEY (FK_sMaLop)
REFERENCES tblLop(PK_sMaLop)
ON DELETE CASCADE
11
ON UPDATE CASCADE,
PK_sMaSV VARCHAR(25) PRIMARY KEY NOT NULL,
sHotenSV NVARCHAR (25) NOT NULL,
sDiachi NVARCHAR (255),
bGioitinh BIT,
tNgaysinh SMALLDATETIME CONSTRAINT chk_Ngaysinh
CHECK(DATEDIFF(YEAR, tNgaysinh,GETDATE())>=17))
3.1.8. Tạo bảng ĐIỂM
CREATE TABLE tblDiem
( FK_sMaSV VARCHAR(25) NOT NULL
CONSTRAINT PK_sMaSV FOREIGN KEY (FK_sMaSV)
REFERENCES tblSinhvien(PK_sMaSV)
ON DELETE CASCADE
ON UPDATE CASCADE,
FK_sMaMonhoc VARCHAR(25) NOT NULL
CONSTRAINT FK_sMaMonhoc FOREIGN KEY (FK_sMaMonhoc)
REFERENCES tblMonhoc(PK_sMaMonhoc)
ON DELETE CASCADE
ON UPDATE CASCADE,
PK_iSolan INTEGER NOT NULL
CONSTRAINT chk_Solan CHECK (PK_iSolan BETWEEN 1 AND 3),
iDiemchuyencan INTEGER
CONSTRAINT chk_Diemchuyencan CHECK (iDiemchuyencan
BETWEEN 0 AND 10),
iDiemgiuaky INTEGER
CONSTRAINT chk_Diengiuaky CHECK (iDiemgiuaky BETWEEN 0
AND 10),
iDiemthilan1 INTEGER
12
CONSTRAINT chk_Diemthilan1 CHECK (iDiemthilan1 BETWEEN 0
AND 10),
iDiemthilan2 INTEGER
CONSTRAINT chk_Diemthilan2 CHECK (iDiemthilan2 BETWEEN 0
AND 10),
PRIMARY KEY (FK_sMaSV,FK_sMaMonhoc, PK_iSolan )
)
13
2.3. Sơ đồ liên kết giữa các bảng
14
3. Xây dựng các VIEW cho CSDL
3.1Xem danh sách SINH VIÊN
Xóa view 1
DROP VIEW view1
Tạo view1
Create View view1
AS
Select sTenlop as [Tên lớp], PK_sMaSV as [Mã thẻ SV],
sHotenSV as [Tên SV], sDiachi as [Địa chỉ],
Case when bGioitinh=0 then N'Nam'
else N'Nữ' end as [Giới tính], tNgaysinh as [Ngày sinh]
From tblSinhvien a
Inner Join tblLop b On (a.FK_sMaLop=b.PK_sMaLop)
Xem view 1
select *
from view1
3.2Xem danh sách PHÂN CÔNG CÔNG TÁC
Xóa view 2
DROP VIEW PCCT
Tạo view1
CREATE VIEW PCCT
AS
SELECT * FROM tblPhancongcongtac
Xem view 1
select *
from PCCT
3.3Xem thông tin Sinh viên có điểm giữa kỳ bằng 6
Xóa view 2
DROP VIEW view2
Tạo view2
Create View view2
AS
Select FK_sMaLop as [Tên lớp], PK_sMaSV as [Mã thẻ SV],
sHotenSV as [Tên SV], sDiachi as [Địa chỉ],
Case when bGioitinh=0 then N'Nam'
else N'Nữ' end as [Giới tính], tNgaysinh as [Ngày sinh],fDiemgiuaky
FROM tblSinhvien a
INNER JOIN tblDiem b ON (a.PK_sMaSV = b.FK_sMaSV)
15
WHERE (fDiemgiuaky)=6
Xem view 2
select *
from view2
3.4Hiện sinh viên địa chỉ “Hà Nội”
Xóa view 3
DROP VIEW view3
Tạo view3
Create View view3
AS
Select FK_sMaLop as [Tên lớp], PK_sMaSV as [Mã thẻ SV],
sHotenSV as [Tên SV], sDiachi as [Địa chỉ],
Case when bGioitinh=0 then N'Nam'
else N'Nữ' end as [Giới tính], tNgaysinh as [Ngày sinh]
FROM tblSinhvien
WHERE sDiachi = 'Ha Noi'
Xem view 3
select *
from view3
3.5Hiện danh sách sản phẩm và loại tương ứng
Xóa view 4
DROP VIEW view4
Tạo view4
Create View view4
AS
SELECT sTenMonhoc as [Tên môn học],iSotrinh as [Số trình]
FROM tblMonhoc
WHERE (tblMonhoc.iSotrinh)=4
Xem view4
select *
from view4
3.6Hiện danh sách sinh viên có điểm chuyên cần
Xóa view 5
DROP VIEW view5
Tạo view5
Create View view5
AS
Select FK_sMaLop as [Tên lớp], PK_sMaSV as [Mã thẻ SV],
sHotenSV as [Tên SV], sDiachi as [Địa chỉ],
16
Case when bGioitinh=0 then N'Nam'
else N'Nữ' end as [Giới tính], tNgaysinh as [Ngày sinh],iDiemchuyencan
FROM tblSinhvien a
INNER JOIN tblDiem b ON (a.PK_sMaSV = b.FK_sMaSV)
Xem view 5
select *
from view5
3.7Tạo view hiện tên sinh viên và điểm chuyên cần, giữa kỳ
Xóa view 6
DROP VIEW view6
Tạo view6
Create View view6
AS
SELECT dbo.tblSinhvien.sHotenSV, dbo.tblDiem.iDiemchuyencan,
dbo.tblMonhoc.sTenMonhoc, dbo.tblDiem.iDiemgiuaky
FROM dbo.tblDiem INNER JOIN
dbo.tblSinhvien ON dbo.tblDiem.FK_sMaSV =
dbo.tblSinhvien.PK_sMaSV INNER JOIN
dbo.tblMonhoc ON dbo.tblDiem.FK_sMaMonhoc =
dbo.tblMonhoc.PK_sMaMonhoc
WHERE (dbo.tblDiem.iDiemchuyencan > 7) AND
(dbo.tblDiem.iDiemgiuaky > 3)
Xem view 6
select *
from view6
17
4. Xây dựng các Procedure cho CSDL
4.1. Thủ tục tìm kiếm Sinh viên
Xoa proc
drop proc SearchtblSinhvien
Tao
CREATE PROC SearchtblSinhvien
@FK_sMaLop varchar(25), @PK_sMaSV varchar(25), @sHotenSV
varchar(25), @sDiachi varchar(25), @bGioitinh bit, @tNgaysinh datetime
AS
SELECT FK_sMaLop,PK_sMaSV,sHotenSV,sDiachi,bGioitinh,tNgaysinh
FROM tblSinhvien
WHERE FK_sMaLop=@FK_sMaLop or PK_sMaSV=@PK_sMaSV or
sHotenSV=@sHotenSV or bGioitinh=@bGioitinh or tNgaysinh=@tNgaysinh
Kiem tra
exec SearchtblSinhvien 'CNCQ010B3','','','','',''
4.2. Tạo thủ tục nhập sản phẩm cho bảng SANPHAM
Hien thi danh sach thong tin sinh vien o cung 1 lop 'CNCQ010B3'
Create Proc DanhsachSV(@FK_sMaLop varchar(25), @PK_sMaSV
varchar(25), @sHotenSV varchar(25), @sDiachi varchar(25), @bGioitinh bit,
@tNgaysinh datetime)
with Recompile, Encryption
AS
SELECT FK_sMaLop,PK_sMaSV,sHotenSV,sDiachi,bGioitinh,tNgaysinh
FROM tblSinhvien
Where FK_sMaLop=@FK_sMaLop
Kiem tra
exec DanhsachSV 'CNCQ010B3' ,'','','','',''
Xoa proc
drop proc DanhsachSV
4.3. Tính điểm trung bình của sinh viên
CREATE PROCEDURE TB (@PK_sMaSV varchar (25), @t float out)
AS
Begin
Set @t= (Select(a.iDiemchuyencan*0.1 + a.iDiemgiuaky*0.2 +
a.iDiemthilan1*0.7)
FROM tblDiem a INNER JOIN tblSinhvien b ON (a.FK_sMaSV =
b.PK_sMaSV)
where PK_sMaSV = @PK_sMaSV)
18
End
xoa
drop proc TB
Test
declare @t float
exec TB'SVCN00001',@t out
print @t
19
5. Xây dựng các Trigger cho Bảng
5.1. Tạo trigger hiển thị dữ liệu mỗi khi có dữ liệu mới được thêm vào
tblPhancongcongtac.
Create trigger trgInsertFK_sMaGV
On tblPhancongcongtac
After insert
AS
Select * from Inserted
Kiem tra
Insert Into tblPhancongcongtac
Values ('GV00003','MH00001')
5.2. Tạo trigger Đưa ra thông báo mỗi khi có dữ liệu được thêm vào
bang tblLop
CREATE TRIGGER trgThongbaoThem
ON tblLop
FOR INSERT
AS
RAISERROR (N'Bạn đang thêm dữ liệu', 16, 1)
Test
INSERT Into tblLop
Values ('QTKD',N'Đại học','QTCQ011G2','11G2','2011')
5.3. Tạo trigger thông báo khi nhập vào của bảng Môn học
Create Trigger trg11
On tblMonhoc
For Insert
AS
Begin
Declare @ma varchar(25)
Declare @kt varchar(25)
select @ma = PK_sMaMonhoc From INSERTED
select @kt=count(PK_sMaMonhoc) from DELETED Where
PK_sMaMonhoc=@ma
print @kt
if @kt=1
Begin
Raiserror(N'Có lỗi khi cập nhật môn học',16,1)
End
else
20
Print N'Cập nhật thành công'
End
Xoa trigger
drop trigger trg11
Test trigger
Insert into tblMonhoc
values ('MH000021','Tieng anh1','3')
5.4. Tạo trigger thông báo khi thêm Môn học có số trình lớn hơn 4
tao
Create Trigger trgmonhoc
On tblMonhoc
For Insert
AS
Begin
Declare @trinh int, @tenmon nvarchar(30),@mon nvarchar(30)
select @trinh=iSotrinh From INSERTED
if @trinh>4
Begin
print N'So trinh sai hoac trung ten mon'
rollback tran
return
end
else
Print N'Cập nhật thành công'
End
xoa
drop trigger trgmonhoc
kiem tra
Insert into tblMonhoc
values ('MH0041','tin','6')
6. Phân quyền và bảo mật CSDL
6.1. Đặt mật khẩu truy cập tới CSDL
6.1.1. Tạo tài khoản đăng nhập “admin” với mật khẩu “12345abcd”
CREATE LOGIN admin
WITH PASSWORD = '12345abcd'
GO
21
6.1.2. Tạo tài khoản đăng nhập “honganh” với mật khẩu “123456”
CREATE LOGIN honganh
WITH PASSWORD = '123456'
GO
6.1.3. Tạo tài khoản đăng nhập “thang” với mật khẩu “123456”
CREATE LOGIN thang
WITH PASSWORD = '123456'
GO
6.1.4. Tạo tài khoản đăng nhập “ducanh” với mật khẩu “123456”
CREATE LOGIN ducanh
WITH PASSWORD = '123456'
GO
6.1.5. Tạo tài khoản đăng nhập “giang” với mật khẩu “123456”
CREATE LOGIN giang
WITH PASSWORD = '123456'
GO
6.1.6. Sửa tài khoản “admin” với mật khẩu mới là “54321”
ALTER LOGIN admin
WITH PASSWORD = '54321'
6.1.7. Sửa tài khoản “admin” với tên đăng nhập mới là “nhom08”
ALTER LOGIN admin
WITH NAME = nhom08;
22
6.1.8. Xóa tài khoản “honganh”
DROP LOGIN honganh
6.2. Phân quyền
6.2.1. Cấp phát quyền thực hiện CREATE TABLE, CREATE VIEW
cho tài khoản "thang":
GRANT CREATE TABLE, CREATE VIEW
TO thang
6.2.2. Trao quyền INSERT, SELECT, UPDATE bảng NCC cho
"thang", "ducanh", "giang":
GRANT SELECT,UPDATE,INSERT
ON NCC
TO thang, ducanh, giang
6.2.3. Cấp phát quyền được xem và cập nhật dữ liệu trên bảng
NHANVIEN trên các cột Diachi, SDTNV đối với tài khoản
"ducanh"
GRANT SELECT,UPDATE
ON NHANVIEN(Diachi, SDTNV)
TO ducanh
6.2.4. Huỷ bỏ quyền cập nhật trên bảng LOAI của tài khoản "giang"
REVOKE UPDATE
ON LOAI
TO giang
6.2.5. Huỷ bỏ tất cả các quyền đã cấp phát cho tài khoản "giang"
REVOKE ALL
FROM giang
23
6.2.6. Từ chối quyền thực hiện lệnh đối với tài khoản "ducanh"
DENY CREATE DATABASE,CREATE TABLE
TO ducanh
24
7. Phân tán CSDL
Tạo CSDL QLSinhvien (thiết lập COLLATE cùng giá trị cho cả 2 server):
CREATE Database BTL COLLATE Vietnamese_CI_AS
GO
USE BTL
GO
7.1. Tạo Link Server
8.1.1. Tạo Link Server 1
Tạo linked server:
EXEC master.dbo.sp_addlinkedserver
@server = N'Server1',
@provider = N'SQLOLEDB',
@datasrc = N'XP_1',
@srvproduct = ''
GO
EXEC sp_linkedservers
Đăng nhập linked server:
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'Server1',
@useself = N'False',
@locallogin = NULL,
@rmtuser = N'sa',
@rmtpassword = '123'
8.1.2. Tạo Link Server 2
Tạo linked server:
EXEC master.dbo.sp_addlinkedserver
@server = N'Server2',
@provider = N'SQLOLEDB',
@datasrc = N'THANGNM\SQLEXPRESS',
@srvproduct = ''
GO
EXEC sp_linkedservers
Đăng nhập linked server:
EXEC master.dbo.sp_addlinkedsrvlogin
25