PDA

View Full Version : chào các bro! Mình cần giúp về xây dựng trigger khó trong SQL 2005 Exp



qtm8x
19-11-2010, 19:33
Mình đang xây dựng csdl cho website của mình. Mình muốn nhờ các bạn giúp mình cách viết một trigger có thể: Kiểm tra dữ liệu khi mình đang nhập trực tiếp dữ liệu đó vào 1 cột trong 1 bảng và tự động chèn mới dữ liệu vào 1 cột khác trong bảng đó.
CỤ THỂ :
Mình có 1 bảng:KhoHang(maLoaiHang,msSanPham,msThuongHieu,s Luong)
Khóa chính :msSanPham
Khi mình nhập vào cột maLoaiHang giá trị: LAPTOP,LAPTOP,DIENTHOAI,DIENTHOAI,..
Thì Trigger chạy và kiểm tra cột maLoaiHang, tiếp đó chèn vào cột msSanPham các giá trị tương ứng sau : LAP0001,LAP0002,MOBI0001,MOBI0002.

Sử dụng : set @msSanPham ='XYZ'+convert(varchar,@sotang)

Thêm một vấn đề nữa là.Cho mình hỏi cách gọi 1 hàm hoặc thủ tục từ trigger như thế nào.

Thank các pro nhiều.

Red Devilic
20-11-2010, 09:09
Không nhất thiết phải dùng Trigger

Bạn có thể viết 1 Stored làm chung cả 2 công việc này

qtm8x
20-11-2010, 11:43
Không nhất thiết phải dùng Trigger

Bạn có thể viết 1 Stored làm chung cả 2 công việc này

@Red: Nếu như bạn nói thì chỉ cần thủ tục là đủ. Nhưng nếu là thủ tục thì đâu thể chạy ngầm bên trong và kiểm tra dữ liệu mình đang nhập trực tiếp từ bàn phím vào trong table được.

Mong nhận thêm nhiều sự giúp đỡ từ các bạn

Red Devilic
20-11-2010, 12:15
Bạn cần xác định rõ ràng các thông tin sau đây

- Dữ liệu của bạn được nhập bằng chương trình hay chèn trực tiếp vào CSDL ( tức là mở SQL Server lên rồi nhập bằng tay )

Nhập bằng chương trình thì yêu cầu bạn cần có thể tự xử lý trên code của chương trình, không cần xử lý trên CSDL.

Còn nhập bằng tay thì dùng COMPUTE Column còn đơn giản hơn là dùng TRIGGER

qtm8x
20-11-2010, 15:20
Mình nhập trưc tiếp trong sql bạn ah.
Bạn nói "COMPUTE Column" đó là gì vậy bạn.
Nó có thể kiểm tra mình đang nhập gì trong 1 cột và chèn dữ liệu vào 1 cột khác hay không.
Bạn giúp mình chi tiết đi, mình chỉ cần 1 trigger như vậy thôi.