GIAO TÁC TRONG SQL SERVER

Một phần của tài liệu Đồ án tốt nghiệp Hệ thống Quản lý đào tạo, sát hạch và cấp giấy phép lái xe (Trang 61 - 63)

1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER 7

1.3. GIAO TÁC TRONG SQL SERVER

1.3.1.Giới thiệu về giao tỏc :

Một biến cục bộ trong giao tỏc là một đối tượng cú thể lưu trữ một giỏ trị dữ liệu đơn của một kiểu xỏc định. Cỏc biến trong batcher và scripts được sử dụng tiờu biểu như sau :

+ Sử dụng như là một bộ đếm dựng để đếm số lần lặp được thực hiện hoặc dựng để điều khiển vũng lặp

+ Sử dụng để lưu giữ giỏ trị dữ liệu sẽ được kiểm tra bởi một lệnh điều khiển dũng (control-of-flow)

+ Sử dụng để ghi nhận giỏ trị trả về từ một strored procedure (khỏi niệm về stored procedure được đề cập ở phần sau của chương này này)

1.3.2.Cỏc vấn đề thường gặp khi xõy dựng giao tỏc :

a. Kiểm tra lỗi khi thực hiện Giao tỏc

Một số lỗi thường gặp sau khi thực hiện một cõu lệnh trong giao tỏc :

- Khụng cú quyền truy cập trờn một đối tượng (table, stored procedure,....) - Vi phạm ràng buộc toàn vẹn

Sinh viờn Huỳnh Văn Ánh Trang 61

SQL Server trả giỏ trị lỗi về trong biến toàn cục @@ERROR - @@ERROR = 0 : khụng xảy ra lỗi

- @@ERROR # 0 : xảy ra lỗi với mó lỗi là @@ERROR

Giao tỏc khụng thể tự động rollback khi gặp những lỗi phỏt sinh trong quỏ trỡnh thực hiện một cõu lệnh thành phần trong giao tỏc

Cần kiểm tra giỏ trị của biến @@ERROR sau mỗi cõu lệnh thành phần trong giao tỏc và cần xử lý những lỗi (nếu cú) : yờu cầu giao tỏc rollback một cỏch tường minh bằng lệnh rollback tran {saction}

b. @@ROWCOUNT và @@ERROR

- Biến toàn cục @@Rowcount chứa số lượng những dũng dữ liệu được tỡm thấy (vớ dụ như khi thực hiện lệnh select hay update). Đõy chớnh là số lượng những dũng dữ liệu thỏa món điều kiện trong mệnh đề where

- Nếu tỡm thấy một dũng dữ liệu nào thỏa món yờu cầu truy vấn (thỏa món điều kiện trong mệnh đề where) thỡ @@ERROR vẫn bằng 0 (nghĩa là khụng xảy ra lỗi). Do đú trong trường hợp này cần kiểm tra giỏ trị @@ RowCount.

1.3.3.Cỏc loại giao tỏc :

a. Explicit

Explicit Transaction là giao tỏc mà user định nghĩa một cỏch rừ ràng cả quỏ trỡnh khởi động lẫn kết thỳc giao dịch. Explicit Transtion cũng được gọi bởi giao dịch user_defined hay user_specified trong cỏc version của SQL Server.

b. Autocommit

Giao tỏc autocommit được thiết lập quản lý giao dịch mặc định trong SQL Server. Nếu một giao tỏc thực hiện thành cụng thỡ nú được commit (tất cả sự thay đổi được tạo ra từ cỏc giao tỏc đú sẽ được cập nhật trong cơ sở dữ liệu), nếu nú gặp bất kỳ lỗi nú sẽ roll back.

Trong mode autocommit, thỉnh thoảng xuất hiện lỗi nếu SQL Server roll back nguyờn cả batch (một tập cỏc lệnh SQL server cũng được xem xột và được thực thi, nú được biờn dịch một lần và kết thỳc bởi lệnh Go) thay vỡ một lệnh SQL. Điều này chỉ xảy ra nếu lỗi đụng độ là lỗi biờn dịch khụng phải là lỗi run_time. Lỗi biờn dịch ngăn

Sinh viờn Huỳnh Văn Ánh Trang 62

cản SQL Server xõy dựng kế hoạch thực thi, vỡ thế khụng cú lệnh nào trong batch được thực thi.

c. Implicit

Khi kết nối được tạo ra theo mode implicit transtion. SQL Server tự động khởi động một giao tỏc mới sau khi giao tỏc hiện thời được commit hay roll back. User khụng làm bất cứ điều gỡ để phỏc họa khởi tạo giao tỏc, user chỉ commit hay roll back mỗi giao tỏc. Implicit Transtion mode đưa ra cỏc mắc xớch nối kết liờn tục cỏc giao tỏc.

Một phần của tài liệu Đồ án tốt nghiệp Hệ thống Quản lý đào tạo, sát hạch và cấp giấy phép lái xe (Trang 61 - 63)

Tải bản đầy đủ (PDF)

(78 trang)