• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Đây là nơi để các bạn trao đổi về cấu trúc dữ liệu và giải thuật

Điều hành viên: Điều hành

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 474
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 173 time
Been thanked: 27 time
Liên hệ:

Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Gửi bàigửi bởi muaphonui_2010 » T.Hai 27/05/2013 3:28 pm

Mình vào Diagram mình tạo liên kết cho 2 tables như hình dưới mà không được.
Hình ảnh
Vậy xin nhờ các bạn chỉ cho mình cách làm với.
Mình đã đổ dữ liệu danh mục lên lưới rồi, giờ mình muốn khi thay đổi "mã khách" dữ liệu trong danh mục thì tự động thay đổi mã khách trong Tables con (mã khách 1 và mã khách 2).
Mình có nghe nói đến cách làm trigger gì đó, nhưng chưa biết cách.
Mong chỉ cho cách đơn giản nhất.
Xin cảm ơn.



FlyingFox
Guru
Guru
Bài viết: 772
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 311 time

Re: Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Gửi bàigửi bởi FlyingFox » T.Hai 27/05/2013 5:35 pm

Viết trigger cho table T_danhmuc như sau:
  1. CREATE TRIGGER tr_upd_danhmuc
  2.     ON  T_danhmuc FOR UPDATE
  3. AS BEGIN
  4.     IF UPDATE(makhach) BEGIN
  5.         UPDATE T_chungtu
  6.            SET T_chungtu.makhach = inserted.makhach
  7.           FROM T_chungtu, deleted, inserted
  8.          WHERE T_chungtu.makhach = deleted.makhach
  9.     END
  10. END

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 474
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 173 time
Been thanked: 27 time
Liên hệ:

Re: Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Gửi bàigửi bởi muaphonui_2010 » T.Ba 28/05/2013 3:42 pm

Chân thành cảm ơn bạn đã giúp.
Có phải mình thực thi câu SQL đó như thế này không vậy bạn.

Mã: Chọn hết

kn.thuchientruyvan("CREATE TRIGGER tr_upd_danhmuc " & _
    "ON  T_danhmuc FOR UPDATE " & _
"AS BEGIN " & _
        "IF UPDATE(makhach) BEGIN " & _
                "UPDATE T_chungtu " & _
                   "SET T_chungtu.makhach1 = inserted.makhach " & _
                  "SET T_chungtu.makhach2 = inserted.makhach " & _
"SET T_chungtuA.makhach1 = inserted.makhach " & _
"SET T_chungtuA.makhach2 = inserted.makhach " & _
"FROM T_chungtu, deleted, inserted " & _
                 "WHERE T_chungtu.makhach1 = deleted.makhach or T_chungtu.makhach2 = deleted.makhach or T_chungtuA.makhach1 = deleted.makhach or " & _
"T_chungtuA.makhach2 = deleted.makhach" & _
        "END " & _
"END "")

Mục đích là để thay đổi "makhach1" và "makhach2" cho nhiều table
Nhờ bạn giúp mình lần nữa. do mình còn yếu quá nên chưa áp dụng dc.

FlyingFox
Guru
Guru
Bài viết: 772
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 311 time

Re: Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Gửi bàigửi bởi FlyingFox » T.Ba 28/05/2013 4:28 pm

Vào SQL Management Studio chọn database rồi tạo new query copy and paste sql script dưới đây rồi run.
Tại vì makhach1 và makhach2 có thễ khác nhau nên phãi update cho từng cái mới được.
  1. CREATE TRIGGER tr_upd_danhmuc
  2.     ON  T_danhmuc FOR UPDATE
  3. AS BEGIN
  4.     IF UPDATE(makhach) BEGIN
  5.         UPDATE T_chungtu
  6.            SET T_chungtu.makhach1 = inserted.makhach
  7.           FROM T_chungtu, deleted, inserted
  8.          WHERE T_chungtu.makhach1 = deleted.makhach
  9.          
  10.          UPDATE T_chungtu
  11.            SET T_chungtu.makhach2 = inserted.makhach
  12.           FROM T_chungtu, deleted, inserted
  13.          WHERE T_chungtu.makhach2 = deleted.makhach
  14.     END
  15. END

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 474
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 173 time
Been thanked: 27 time
Liên hệ:

Re: Nhờ giúp tạo liên kết bảng trong SQL Server 2008

Gửi bàigửi bởi muaphonui_2010 » T.Năm 06/06/2013 8:33 pm

Cảm ơn bạn nhiều.


Quay về “Cấu trúc dữ liệu và giải thuật”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách