Học SQL server 2000

Học SQL server 2000

Giới Thiệu SQL Server 2000

SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database

Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa

Client computer và SQL Server computer. Một RDBMS bao gồm databases,

database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác

nhau trong RDBMS.

SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất

lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ

cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các

server khác như Microsoft Internet Information Server (IIS), E-Commerce

Server, Proxy Server

pdf 61 trang Người đăng kidphuong Lượt xem 1383Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Học SQL server 2000", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
HỌC SQL SERVER 2000 1 
MỤC LỤC 
Overview of SQL Server 2000 ........................................................................................... 2 
Transact SQL ...................................................................................................................... 7 
Backup And Restore SQL Server ..................................................................................... 24 
Stored Procedure and Advanced T-SQL........................................................................... 41 
Triggers And Views.......................................................................................................... 51 
HỌC SQL SERVER 2000 2 
Overview of SQL Server 2000 
Ðể đọc và hiểu bài viết này bạn phải có kiến thức căn bản về SQL và Access Database 
Giới Thiệu SQL Server 2000 
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database 
Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa 
Client computer và SQL Server computer. Một RDBMS bao gồm databases, 
database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác 
nhau trong RDBMS. 
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất 
lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ 
cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các 
server khác như Microsoft Internet Information Server (IIS), E-Commerce 
Server, Proxy Server.... 
SQL Server có 7 editions: 
• Enterprise : Chứa đầy đủ các đặc trưng của SQL Server và có thể chạy 
tốt trên hệ thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các 
dịch vụ giúp cho việc phân tích dữ liệu rất hiệu quả (Analysis Services) 
• Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn 
nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng 
cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ 
thống lên đến 4 CPU và 2 GB RAM. 
• Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu 
hết các phiên bản windows kể cả Windows 98. 
• Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được 
chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một 
lúc.... Ðây là edition mà các bạn muốn học SQL Server cần có. Chúng ta 
sẽ dùng edition này trong suốt khóa học. Edition này có thể cài trên 
Windows 2000 Professional hay Win NT Workstation. 
• Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và 
không có user interface (giao diện). Thích hợp cho việc triển khai ứng 
dụng ở máy client. Kích thước database bị giới hạn khoảng 2 GB. 
HỌC SQL SERVER 2000 3 
• Win CE : Dùng cho các ứng dụng chạy trên Windows CE 
• Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới 
hạn thời gian sử dụng. 
Cài Ðặt SQL Server 2000 (Installation) 
Các bạn cần có Developer Edition và ít nhất là 64 MB RAM, 500 MB hard disk 
để có thể install SQL Server. Bạn có thể install trên Windows Server hay 
Windows XP Professional, Windows 2000 Professional hay NT Workstation nhưng 
không thể install trên Win 98 family. 
Vì một trong những đặc điểm của các sản phẩm Microsoft là dễ install nên chúng 
tôi không trình bày chi tiết về cách install hay các bước install mà chỉ trình bày 
các điểm cần lưu ý khi install mà thôi. Nếu các bạn gặp trở ngại trong việc install 
thì có thể đưa lên forum để hỏi thêm. Khi install bạn cần lưu ý các điểm sau: 
Ở màn hình thứ hai bạn chọn Install Database Server. Sau khi install xong 
SQL Server bạn có thể install thêm Analysis Service nếu bạn thích. 
Ở màn hình Installation Definition bạn chọn Server and Client Tools. 
Sau đó bạn nên chọn kiểu Custom và chọn tất cả các bộ phận của SQL Server. 
Ngoài ra nên chọn các giá trị mặc định (default) 
Ở màn hình Authentication Mode nhớ chọn Mixed Mode . Lưu ý vì SQL 
Server có thể dùng chung chế độ bảo mật (security) với Win NT và cũng có thể 
dùng chế độ bảo mật riêng của nó. Trong Production Server người ta thường 
dùng Windows Authetication vì độ an toàn cao hơn và dễ dàng cho người quản 
lý mạng và cả cho người sử dụng. Nghĩa là một khi bạn được chấp nhận 
(authenticated) kết nối vào domain thì bạn có quyền truy cập dữ liệu (access 
data) trong SQL Server. Tuy nhiên ta nên chọn Mixed Mode để dễ dàng cho việc 
học tập. 
Sau khi install bạn sẽ thấy một icon nằm ở góc phải bên dưới màn hình, đây 
chính là Service Manager. Bạn có thể Start, Stop các SQL Server services dễ 
dàng bằng cách double-click vào icon này. 
Một chút kiến thức về các Version của SQL Server 
SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5. 
Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 
7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt. Có 
một số đặc tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi 
HỌC SQL SERVER 2000 4 
đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là 
mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn. 
Một điểm đặc biệt đáng lưu ý ở version 2000 là Multiple-Instance. Nói cho dễ 
hiểu là bạn có thể install version 2000 chung với các version trước mà không cần 
phải uninstall chúng. Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 
với version 2000 trên cùng một máy (điều này không thể xảy ra với các version 
trước đây). Khi đó version cũ trên máy bạn là Default Instance còn version 
2000 mới vừa install sẽ là Named Instance. 
Các thành phần quan trọng trong SQL Server 2000 
SQL Server 2000 được cấu tạo bởi nhiều thành phần như Relational Database 
Engine, Analysis Service và English Query.... Các thành phần này khi phối hợp 
với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích 
dữ liệu một cách dễ dàng. 
Relational Database Engine - Cái lõi của SQL Server: 
Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng 
table và support tất cả các kiểu kết nối (data connection) thông dụng của 
Microsoft như ActiveX Data Objects (ADO), OLE DB, and Open Database 
Connectivity (ODBC). Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ 
HỌC SQL SERVER 2000 5 
như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài 
nguyên cho hệ điều hành khi một user log off. 
Replication - Cơ chế tạo bản sao (Replica): 
Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng thường 
xuyên cập nhật. Một ngày đẹp trời bạn muốn có một cái database giống y hệt 
như thế trên một server khác để chạy báo cáo (report database) (cách làm này 
thường dùng để tránh ảnh hưởng đến performance của server chính). Vấn đề là 
report server của bạn cũng cần phải được cập nhật thường xuyên để đảm bảo 
tính chính xác của các báo cáo. Bạn không thể dùng cơ chế back up and restore 
trong trường hợp này. Thế thì bạn phải làm sao? Lúc đó cơ chế replication của 
SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ 
(synchronized). Replication sẽ được bàn kỹ trong bài 12 
Data Transformation Service (DTS) - Một dịch vụ chuyển dịch data vô cùng 
hiệu quả 
Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi 
khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của 
IBM), SQL Server, Microsoft Access....Bạn chắc chắn sẽ có nhu cầu di chuyển 
data giữa các server này (migrate hay transfer) và không chỉ di chuyển bạn còn 
muốn định dạng (format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy 
DTS giúp bạn giải quyết công việc trên dễ dàng như thế nào. DTS sẽ được bàn 
kỹ trong bài 8. 
Analysis Service - Một dịch vụ phân tích dữ liệu rất hay của Microsoft 
Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn 
không thể lấy được những thông tin (Information) bổ ích từ đó. Do đó Microsoft 
cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên 
dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-
dimension cubes) và kỹ thuật "đào mỏ dữ liệu" (data mining) sẽ được chúng tôi 
giới thiệu trong bài 13. 
English Query - Một dịch vụ mà người Việt Nam chắc là ít muốn dùng :-) (?) 
Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh "trơn" (plain 
English). 
Meta Data Service: 
Dịch vụ này giúp cho việc chứa đựng và "xào nấu" Meta data dễ dàng hơn. Thế 
thì Meta Data là cái gì vậy? Meta data là những thông tin mô tả về cấu trúc của 
data trong database như data thuộc loại nào String hay Integer..., một cột nào 
HỌC SQL SERVER 2000 6 
đó có phải là Primary key hay không....Bởi vì những thông tin này cũng được 
chứa trong database nên cũng là một dạng data nhưng để phân biệt với data 
"chính thống" người ta gọi nó là Meta Data. Phần này chắc là bạn phải xem thêm 
trong một thành phần khác của SQL Server sắp giới thiệu sau đây là SQL 
Server Books Online vì không có bài nào trong loạt bài này nói rõ về dịch vụ 
này cả. 
SQL Server Books Online - Quyển Kinh Thánh không thể thiếu: 
Cho dù bạn có đọc các sách khác nhau dạy về SQL server thì bạn cũng sẽ thấy 
books online này rất hữu dụng và không thể thiếu được( cho nên Microsoft mới 
hào phóng đính kèm theo SQL Server). 
SQL Server Tools - Ðây là một bộ đồ nghề của người quản trị cơ sở dữ liệu 
(DBA ) 
Ái chà nếu kể chi tiết ra thì hơi nhiều đấy cho nên bạn cần đọc thêm trong books 
online. Ở đây người viết chỉ kể ra một vài công cụ thông dụng mà thôi. 
ƒ Ðầu tiên phải kể đến Enterprise Manager. Ðây là một công cụ cho ta 
thấy toàn cảnh hệ thống cơ sở dữ liệu một cách rất trực quan. Nó rất hữu 
ích đặc biệt cho người mới học và không thông thạo lắm về SQL. 
ƒ Kế đến là Query Analyzer. Ðối với một DBA giỏi thì hầu như chỉ cần 
công cụ này là có thể quản lý cả một hệ thống database mà không cần 
đến những thứ khác. Ðây là một môi trường làm việc khá tốt vì ta có thể 
đánh bất kỳ câu lệnh SQL nào và chạy ngay lập tức đặc biệt là nó giúp 
cho ta debug mấy cái stored procedure dễ dàng. 
ƒ Công cụ thứ ba cần phải kể đến là SQL Profiler. Nó có khả năng "chụp" 
(capture) tất cả các sự kiện hay hoạt động diễn ra trên một SQL server và 
lưu lại dưới dạng text file rất hữu dụng trong việc kiểm soát hoạt động 
của SQL Server. 
ƒ Ngoài một số công cụ trực quan như trên chúng ta cũng thường hay dùng 
osql và bcp (bulk copy) trong command prompt. 
Tóm lại trong bài này chúng ta đã dạo qua một vòng để tìm hiểu về SQL Server. 
Trong bài sau chúng ta cũng sẽ tiếp tục dạo chơi thêm một chút với Transact-
SQL trước khi đi sâu vào các đề tài khác. 
HỌC SQL SERVER 2000 7 
Transact SQL 
Giới Thiệu Sơ Lược Về Transact SQL (T-SQL) 
Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO 
(International Organization for Standardization) và ANSI (American National 
Standards Institute) được sử dụng trong SQL Server khác với P-SQL (Procedural-
SQL) dùng trong Oracle. 
Trong bài này chúng ta sẽ tìm hiểu sơ qua về T-SQL. Chúng được chia làm 3 
nhóm: 
Data Definition Language  ... ùng cho Date_Time_Stamp 
column, sau đó insert vào Aud_Orders table. Tương tự với trường hợp Update và 
Delete, record đã được update hay delete nằm trong deleted table. 
Như vậy trở lại trường hợp thí dụ ở trên nếu "bà tám" yêu cầu ta có thể vào tìm 
kiếm trong audit table để phục hồi lại record. Ngoài ra ta có thể dùng table này 
để tìm ra thủ phạm đã xoá hay sửa chữa data khi cần thiết. 
HỌC SQL SERVER 2000 55 
Ðể tạo ra hay xem một trigger bằng Enterprise Manager bạn làm như sau: 
Right-Click lên table mà bạn muốn tạo trigger->All Tasks-> Manage 
Triggers. 
Lưu ý: Ðôi Khi ta chỉ muốn trigger thực sự hoạt động khi một hay vài column 
nào đó được Update chứ không phải bất kỳ column nào. Khi đó ta có thể dùng 
hàm Update(Column_Name) để kiểm tra xem column nào đó có bị update hay 
không. 
Ví dụ: 
Tạo một trigger cho Customer table. Bên trong Trigger (sau chữ AS) ta có thể 
kiểm tra xem nếu column First_Name hay Last_Name bị thay đổi thì mới hành 
động nếu không thì không làm gì cả 
 IF UPDATE (first_name) OR UPDATE (Last_Name) 
 BEGIN 
 Do some conditional processing when either of these 
columns are updated. 
 END 
Nếu muốn kiểm tra nhiều columns ta có thể dùng hàm khác là 
Columns_Updated() . Xin xem thêm trong SQL Server Books Online để biết 
thêm chi tiết về cách sử dụng. 
Views 
Ðịnh nghĩa một cách đơn giản thì view trong SQL Server tương tự như Query 
trong Access database. View có thể được xem như một table ảo mà data của nó 
được select từ một stored query. Ðối với programmer thì view không khác chi so 
với table và có thể đặt ở vị trí của table trong các câu lệnh SQL. Ðặc điểm của 
View là ta có thể join data từ nhiều table và trả về một recordset đơn. Ngoài ra 
ta có thể "xào nấu" data (manipulate data) trước khi trả về cho user bằng cách 
dùng một số logic checking như (if, case...). 
Ví dụ: 
 Create View OrderReport 
 As 
 Select OrderID, 
 (case when [Name] is null then 'New Customer' 
 else [Name] 
 end )As CustomerName, 
 ProductName, 
 DateProcessed 
 From Customers Right Outer Join Orders on 
Customers.CustomerID=Orders.CustomerID 
HỌC SQL SERVER 2000 56 
Trong ví dụ trên ta chủ yếu trả về data từ Orders table trong PracticeDB nhưng 
thay vì display CustomerID vốn không có ý nhiều ý nghĩa đối với user ta sẽ 
display tên của customer bằng cách join với Customer table. Nếu Customer 
Name là Null nghĩa là tên của customer đã đặt order không tồn tại trong system. 
Thay vì để Null ta sẽ display "New Customer" để dễ nhìn hơn cho user. 
Nói chung câu lệnh SQL trong View có thể từ rất đơn giản như select toàn bộ 
data từ một table cho đến rất phức tạp với nhiều tính năng programming của T-
SQL. 
View Thường Ðược Dùng Vào Việc Gì? 
View thường được sử dùng vào một số công việc sau: 
• Tập trung vào một số data nhất định : ta thường dùng view để 
select một số data mà user quan tâm hay chịu trách nhiệm và loại 
bỏ những data không cần thiết. 
Ví dụ: Giả sử trong table ta có column "Deleted" với giá trị là True hay 
False để đánh dấu một record bị delete hay không. Việc này đôi khi 
được dùng cho việc Audit. Nghĩa là trong một ứng dụng nào đó khi 
user delete một record nào đó, thay vì ta physically delete record ta 
chỉ logically delete bằng cách đánh dấu record là đã được "Deleted" để 
đề phòng user yêu cầu roll back. Như vậy chủ yếu ta chỉ quan tâm đến 
data chưa delete còn data đã được đánh dấu deleted chỉ được để ý khi 
nào cần roll back hay audit mà thôi. Trong trường hợp này ta có thể 
tạo ra một view select data mà Deleted=False và làm việc chủ yếu 
trên view thay vì toàn bộ table. 
• Ðơn giản hóa việc xử lý data: Ðôi khi ta có những query rất 
phức tạp và sử dụng thường xuyên ta có thể chuyển nó thành View 
và đối xử nó như một table, như vậy sẽ làm cho việc xử lý data dễ 
dàng hơn. 
• 
• Customize data: Ta có thể dùng view để làm cho users thấy data 
từ những góc độ khác nhau mặc dù họ đang dùng một nguồn data 
giống nhau. Ví dụ: Ta có thể tạo ra views trong đó những thông tin 
về customer được thể hiện khác nhau tùy login ID là normal user 
hay manager. 
• 
• Export và Import data: Ðôi khi ta muốn export data từ SQL 
Server sang các ứng dụng khác như Excel chẳng hạn ta có thể 
dùng view để join nhiều table và export dùng bcp. 
HỌC SQL SERVER 2000 57 
Khi sử dụng view ta có thể select,insert, update, delete data bình thường như với 
một table. 
Ví dụ: 
 Select * From OrderReport 
 Where DateProcessed <'2003-01-01' 
Lưu ý: Trong Enterprise Edition (và Developer Edition) ta có thể tạo Index cho 
View như cho table. Index sẽ được bàn đến trong các bài sau. 
Muốn hiểu rõ hơn về bài học này bạn cần làm bài tập số 3. 
Như vậy trong bài này chúng ta đã tìm hiểu Trigger, View trong SQL Server và 
một số ứng dụng của nó. Nói chung view thường được dùng để trừu tượng hóa 
(abstract) hay lọc raw data (data thô) trước khi trả về cho user trong khi trigger 
thường được dùng để bảo đảm tính integrity của database. 
Exercise 1: Advanced Query 
Please follow those steps to practise: 
1. Create a new database called PracticeDB (using Enterprise Manager (EP) or 
Query Analyser (QA)) 
2. Create 2 tables and insert data as follows (use EP or QA) : 
Customers 
CustomerID
(Int) 
Name 
(nVarChar(50)) 
1 John Nguyen 
2 Bin Laden 
3 Bill Clinton 
4 Thomas Hardy 
5 Ana Tran 
6 Bob Carr 
Orders 
OrderID 
(Int) 
CustomerID
(Int) 
ProductName 
(nvarchar(50))
DateProcessed 
(datetime) 
1 2 Nuclear Bomb ‘2002-12-01’ 
2 3 Missile ‘2000-03-02’ 
3 2 Jet-1080 ‘2003-08-03’ 
4 1 Beers ‘2001-05-12’ 
5 4 Asian Food ‘2002-10-04’ 
6 7 Wine ‘2002-03-08’ 
HỌC SQL SERVER 2000 58 
7 8 Milk ‘2002-05-02’ 
3. Query data using Select statement with the following Join (use QA) 
a. Inner Join 
b. Left Outter Join 
c. Right Outer Join 
d. Full Outer Join 
e. Cross Join 
The result of the query must be displayed in the following format 
( Hints: Based on the data supplied and your knowledge about various kind of joins 
guess the results then after each select compare it with your guessing to check if what 
you understand is correct. You also use As keyword or alias in the queries) 
4. Using “Select * Into...From” statement to create a new table called “Processed 
Orders” and populate the new table with the data selecting from Orders table 
Where DateProcessed is earlier than ‘2002-10-05’. (use QA) 
5. Using “Insert Into...Select” statement to get the top 1 record from “Orders” table 
and insert into the “ProcessedOrders” (use QA) 
6. Delete a record from ProcessedOrders where the date processed is ‘2002-10-04’. 
(use QA) 
7. Using Union to merge the two data set from Orders and ProcessedOrders into one 
data set. (use QA) 
8. Apply Constraints (use EP or QA) 
a.Apply the Primary Constraint to the “ID” column in the tables 
b. Apply the Foreign Key Constraint in the Orders table. 
c. Apply the Check Constraint to the DateProcessed column so that the date is 
within ‘1970-01-01’ – ‘2005-01-01’ and try to insert invalid data to see if SQL 
rejects. 
d. Apply Unique Constraint to the CustomerName column of Customers 
9. Back up database and Restore to somewhere else (on a different server or on the 
same server but with different database name) (use EP or QA) 
10. Truncate and Drop the ProcessedOrders table (use QA) 
OrderID CustomerName ProductName DateProcessed
HỌC SQL SERVER 2000 59 
Exercise 2: Manipulate Data and Stored Procedure 
Please follow those steps to practise: 
9. Use bcp to export all data from Orders table of PracticeDB to c:\Orders.txt (or to 
c:\Orders.csv) 
10. Change some data in the c:\Orders.txt and save. Then import to Orders table from 
the text file using bcp 
11. Import Orders.txt to Orders table using BULK INSERT 
12. Create a Linked Server ‘LinkedPracticeDB’ which link to an Access database 
‘PracticeDB.mdb’ (firstly you have to create an Access database similar to 
PracticeDB in SQL Server and input some data). Then do a select data using four-
part name and OPENQUERY 
13. Using ad hoc computer name with OPENROWSET and 
OPENDATASOURCE functions to select data from ‘PracticeDB.mdb’ 
14. Create the following Cursor 
DECLARE @au_lname varchar(40), @au_fname varchar(20) 
 DECLARE Employee_Cursor CURSOR FOR 
 SELECT LastName, FirstName FROM Northwind.dbo.Employees 
 OPEN Employee_Cursor 
 FETCH NEXT FROM Employee_Cursor INTO @au_lname, @au_fname 
 WHILE @@FETCH_STATUS = 0 
 BEGIN 
 PRINT 'Author:' + @au_fname + ' ' + @au_lname 
 FETCH NEXT FROM Employee_Cursor INTO @au_lname, @au_fname 
 END 
 CLOSE Employee_Cursor 
 DEALLOCATE Employee_Cursor 
15. Create the following stored procedure and try to execute with some values 
CREATE PROCEDURE AddNewOrder 
 @OrderID smallint, 
 @ProductName varchar(50), 
 @CustomerName varchar(50), 
 @Result smallint=1 Output 
AS 
DECLARE @CustomerID smallint 
 BEGIN TRANSACTION 
 If not Exists(SELECT CustomerID FROM Customers WHERE 
[Name]=@CustomerName) 
 BEGIN 
HỌC SQL SERVER 2000 60 
 SET @CustomerID= (SELECT Max(CustomerID) FROM 
Customers) 
 SET @CustomerID=@CustomerID+1 
 INSERT INTO Customers 
VALUES(@CustomerID,@CustomerName) 
 If Exists(SELECT OrderID FROM [Orders] WHERE 
OrderID=@OrderID) 
 BEGIN 
 SELECT @Result=1 
 ROLLBACK TRANSACTION 
 END 
 Else 
 BEGIN 
 INSERT INTO 
[Orders](OrderID,ProductName,CustomerID) 
VALUES(@OrderID,@ProductName,@CustomerID) 
 SELECT @Result=0 
 COMMIT TRANSACTION 
 END 
 END 
 Else 
 BEGIN 
 If Exists(SELECT OrderID FROM [Orders] WHERE 
OrderID=@OrderID) 
 BEGIN 
 SELECT @Result=1 
 ROLLBACK TRANSACTION 
 END 
 Else 
 BEGIN 
 INSERT INTO 
[Orders](OrderID,ProductName,CustomerID) 
VALUES(@OrderID,@ProductName,@CustomerID) 
 SELECT @Result=0 
 COMMIT TRANSACTION 
 END 
 END 
Print @Result 
Return 
9. Using VB 6 or VB.NET to execute the ‘AddNewOrder’ stored procedure 
10. Using xp_cmdshell extended stored procedure to send a message (xp_cmdshell 
‘net send Hello’) 
HỌC SQL SERVER 2000 61 
Exercise 3: Triggers And Views 
Please follow those steps to practise: 
16. Create 3 triggers to audit the changes to the Orders table. 
Tips: 
• Create an audit table “aud_Orders” with the same colums as in the 
Orders table and 2 more colums AuditType(with values either 
‘I’,’U’,’D’) and DateTimeStamp(which will record the date time 
stamp of changes) 
• Create Update Triggers (Similar to Insert,Delete) : when a record 
in the Orders table is updated the trigger will move the old record 
to the audit table(record the date time and mark it as ‘U’) 
17. Create a view that shows all the orders with the following colums: 
OrderID,CustomerName,ProductName,DateProcessed,Status 
Business rules: 
If CustomerName is a null value “New Customer” is returned 
If DateProcessed is later than current date return “Pending”, if DateProcessed is 
ealier return “History” in Status colum. 
Tips: 
a. Using Case When ...Then statement in the view 
b. Using Getdate() function to get the current date time 

Tài liệu đính kèm:

  • pdfHuongDanSuDungSQLServe.pdf