-1- SQL Server 2000 : Biến cục Giống ngôn ngữ lập trình khác, việc sử dụng biến cục chương trình điều tất yếu phải có bên ứng dụng Nếu biến ngôn ngữ lập trình trở nên không hiệu quả, Transaction-SQL không loại trừ yếu tố Biến chương trình dùng để lưu trữ giá trị tạm thời trình tính toán xử lý sau thoát khỏi chương trình tắt máy tính giá trị biến khôngc òn nhớ Thông thường biến dùng để lưu trữ loại liệu Do biến xác định để lưu trữ liệu dạng ngày bạn ép buộc biến lưu trữ liệu dạng khác số chuỗi Mỗi biến cần phải có tên biến rõ ràng phạm vi để cần tham chiếu, bạn định đến tên biến Trong Transaction-SQL có hai loại biến khác : biến cục biến hệ thống Khác với ngôn ngữ lập trình, Microsoft SQL Server khái niệm biến toàn cục 1/- Khai báo biến cục : Khai báo biến cục việc định cho hệ thống máy tính cấp phát vùng nhớ bên nhớ RAM (random access memory) máy tính để chương trình lưu trữ giá trị tạm thời trình tính toán Trong Transaction-SQL việc sử dụng biến cần phải khai báo tường minh rõ ràng, có nghĩa bắt buộc bạn cần phải khai báo biến cục trước sau phép sử dụng Điều giúp cho bạn hiểu rõ việc khai báo sử dụng biến bên chương trình Để khai báo biến cục Transaction-SQL, bạn sử dụng lệnh DECLARE với cú pháp sau : Cú pháp : Trong : -2• Tên biến : tên biến khai báo, tên biến luôn bắt đầu ký tự @ Thông thường tên biến phải phạm vi hoạt động • Kiểu liệu : kiểu liệu Microsoft SQL Server kiểu liệu người dùng định nghĩa, dùng để định loại liệu mà biến lưu trữ Các kiểu liệu text, ntext image không chấp nhận việc khai báo biến Ví dụ : Để khai báo biến dùng để lưu trữ giá trị tổng số lượng đặt hàng, họ tên nhà cung cấp, ngày xuất hàng, bạn sử dụng lệnh DECLARE sau : Khác với vài ngôn ngữ lập trình, bạn gán giá trị khởi tạo cho biến lúc khai báo chúng Do đó, hành động gán giá trị cần lưu trữ vào bên biến 2/- Gán giá trị cho biến : Để gán trị cần lưu trữ vào biến, bạng sử dụng lệnh SET lệnh SELECT với phép gán (=) Thông thường lệnh SET để gán giá trị cụ thể biểu thức tính toán giá trị tính toán từ biến khác Ví dụ : Để gán giá trị ngày 25/03/2002 vào biến ngày xuất hàng khai báo theo ví dụ trên, bạn sử dụng lệnh SET sau : Lưu ý : Đối với kiểu liệu dạng ngày Microsoft SQL Server thông thường bạn sử dụng theo định dạng yyyy-mm-dd để gán giá trị vào biến vào sở liệu Ngược lại với lệnh SET, lệnh SELECT dùng để gán giá trị lấy tính toán từ liệu cột bên bảng liệu Ngoài lệnh SELECT cho phép lúc đồng thời bạn gán giá trị khác từ cột liệu vào bên biến khác Ví dụ : -3Để tính tồng số lượng đặt hàng mà liệu lấy từ cột SLDAT (số lượng đặt) bảng CTDONDH, bạn sử dụng lệnh SELECT sau : Ví dụ : Để tính đồng thời giá trị số lượng đặt hàng thấp cao nhất, bạn cần sử dụng lệnh SELECT sau : Cẩn thận sử dụng câu lệnh SELECT để gán giá trị cần lưu trữ vào biến trường hợp câu lệnh SELECT trả nhiều dòng liệu có giá trị dòng liệu sau lưu trữ vào biến Điều làm cho bạn hệ thống không báo lỗi Do muốn tránh trường hợp cách tốt bạn đảm bảo liệu trả dòng câu lệnh SELECT, thông thường bạn sử dụng mệnh đề WHERE để lọc liệu theo điều kiện cần kết hợp hàm thống kê MIN, MAX, SUM để giới hạn số dòng trả Ví dụ : Để tính số lượng đặt hàng cao mặt hàng "Đầu DVD Hitachi đĩa" có mã vật tư "DD01", bạn sử dụng lệnh SELECT sau : Hoặc -4- Câu lệnh SELECT thứ hai kết hợp mệnh đề ORDER BY DESC dùng để xếp liệu giảm dần theo cột số lượng đặt sau kết hợp thêm mệnh đề TOP để lấy thông tin dòng Khi liệu lệnh SELECT trả dòng có giá trị số lượng đặt hàng lớn Mặc dù Microsoft SQL Server có chế tự động chuyển đổi kiểu bạn không nên sử dụng cách Do khai báo biến, bạn cần kiểu liệu mà biến lưu trữ Ví dụ : Biến @TongSoDH bên có kiểu không hợp lệ, nhiên hệ thống thực bình thường không thông báo lỗi Biến @TongSoDH phải có kiểu số nguyên INT 3/- Xem giá trị hành biến : Sau đưa giá trị cần lưu trữ vào bên biến, bạn cần xem giá trị hành mà biến lưu trữ Để làm điều này, bạn sử dụng lệnh PRINT để in nội dung mà biến lưu trữ hình Cú pháp lệnh PRINT sau : Cú pháp : Trong : • Tên biến : tên biến khai báo trước mà bạn muốn xem giá trị hành lưu trữ Thôngt hường kiểu liệu biến kiểu chuỗi (char varchar) bạn nên sử dụng hàm CAST hàm CONVERT để chuyển kiểu liệu chuỗi tương ứng • Biểu thức chuỗi : biểu thức chuỗi văn cần in Độ dài tối đa chuỗi 8.000 ký tự -5Ví dụ : Để tính đồng thời giá trị số lượng đặt hàng thấp cao nhất, sau hiển thị kết hình cho bạn biết, bạn sử dụng lệnh SELECT PRINT sau : Trong ví dụ trên, sử dụng hàm CONVERT dùng để chuyển đổi kiểu liệu biến @MaxSldat từ kiểu số nguyên (INT) sang kiểu chuỗi (VARCHAR) toán tử (+) dùng để nối chuỗi lại với câu lệnh PRINT thứ hai 4/- Phạm vi hoạt động biến : Trong Transaction-SQL phạm vi hoạt động biến nằm bên thủ tục nội (stored procedure) lô (batch) chứa câu lệnh mà biến khai báo bên Khái niệm lô xem nhóm tập hợp nhiều câu lệnh Transaction-SQL biênd ịch đồng thời lúc Microsoft SQL Server sau hệ thống thực thi câu lệnh sau biên dịch thành công Để định lô bạn sử dụng từ khóa GO Đây từ khóa để định kết thúc lô Ví dụ : Bạn có lô Transaction-SQL sau : Do câu lệnh lô biên dịch Microsoft SQL Server có lệnh bên lô có lỗi cú pháp lúc biên dịch câu lệnh thực thi bên lô Ví dụ : -6Như ví dụ bạn có bổ sung thêm lệnh INSERT mà cú pháp lệnh bị sai (thiếu từ khóa VALUES) lệnh SELECT bên lô không thực Hệ thống xuất thông báo lỗi : Tuy nhiên lỗi thực (run-time) bên lô trường hợp lỗi vi phạm ràng buộc toàn vẹn liệu hệ thống Microsoft SQL Server ngưng lại câu lệnh gây lỗi thực tiếp lệnh bên lô Ví dụ : Vẫn tiếp ví dụ bạn có bổ sung từ khóa VALUES lệnh INSERT lần có lệnh INSERT vi phạm ràng buộc toàn vẹn (giả sử trùng khóa cột mã nhà cung cấp) lệnh SELECT bên lô thực bình thường Ví dụ : Khai báo biến cục kiểu ngày dùng để lưu ngày đặt hàng gần dây dựa liệu bảng DONDH cột Ngaydh Sau in giá trị đ1o hình -7- Hệ thống hiển thị thông báo lỗi bạn chèn thêm từ khóa GO hai lệnh SELECT PRINT Bởi lệnh chia làm hai lô lô thứ hai không hiểu biến @Ngaydhgn khai báo lô thứ Lưu ý : Đối với lệnh CREATE CREATE DEFAULT, CREATE PROCEDURE, CREATE RULE, CREATE TRIGGER, CREATE VIEW không phép kết hợp với lệnh khác lô SQL Server 2000 : Biến hệ thống Không giống ngôn gnữ lập trình khác, TransactionSQL khái niệm biến toàn cục Thay vào hệ thống Microsoft SQL Server cung cấp cho người lập trình danh sách biến hệ thống Các biến hệ thống bên Microsoft SQL Server bắt đầu hai chữ @@ giá trị mà chúng lưu trữ hệ thống Microsoft SQL Server cung cấp, người lập trình can thiệp trực tiếp để gán giá trị vào biến hệ thống 1/- Ý nghĩa sử dụng Khi lập trình Transaction-SQL, bạn thường xuyên sử dụng giá trị biến hệ thống để giúp kiểm tra kết thực lệnh trước Thật biến hệ thống hàm Microsoft SQL Server xây dựng bên người lập trình việc tra cứu giá trị thời để thực xử lý sau Một vài biến hệ thống có giá trị thay đổi thường xuyên tùy thuộc vào câu lệnh thực Transaction-SQL, nhiên bên cạnh có vài biến hệ thống có giá trị thay đổi -8Biến @ROWCOUNT trả tổng số mẫu tin thực câu lệnh gần Biến hệ thống có giá trị thay đổi thường xuyên Giá trị biến hệ thống @ROWCOUNT lần thứ trả tổng số mẫu tin có bảng NHACC, giá trị biến hệ thống @@ROWCOUNT lần thứ hai trả tổng số mẫu tin có mã vật tư bắt đầu chữ "TV" bảng VATTU Ví dụ : Biến @@VERSION trả phiên bản, ngày sản phẩm Microsoft SQL Server loại CPU, hệ điều hành máy chủ cài đặt Microsoft SQL Server Biến hệ thống có giá trị thay đổi, giá trị thay đổi bạn nâng cấp hệ thống Microsoft SQL Server 2/- Một số biến hệ thống thường dùng : Ý nghĩa số biến hệ thống thường dùng Microsoft SQL Server : -9- ... khác, TransactionSQL khái niệm biến toàn cục Thay vào hệ thống Microsoft SQL Server cung cấp cho người lập trình danh sách biến hệ thống Các biến hệ thống bên Microsoft SQL Server bắt đầu hai... cài đặt Microsoft SQL Server Biến hệ thống có giá trị thay đổi, giá trị thay đổi bạn nâng cấp hệ thống Microsoft SQL Server 2/- Một số biến hệ thống thường dùng : Ý nghĩa số biến hệ thống thường...-2• Tên biến : tên biến khai báo, tên biến luôn bắt đầu ký tự @ Thông thường tên biến phải phạm vi hoạt động • Kiểu liệu : kiểu liệu Microsoft SQL Server kiểu liệu người dùng