ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 986|ตอบกลับ: 1

ต้องกานเปลี่ยนรหัสลูกค้าที่เหมือนกันในทุก table vb.net

[คัดลอกลิงก์]

2

กระทู้

7

โพสต์

66

เครดิต

Member

Rank: 2

เครดิต
66

รบกวนด้วยครับ

Help

Help

6

กระทู้

20

โพสต์

216

เครดิต

ผู้ดูแลบอร์ด

Rank: 7Rank: 7Rank: 7

เครดิต
216
โพสต์ 2018-4-26 10:25:46 | ดูโพสต์ทั้งหมด

แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2018-5-3 10:11

1. กรณีไม่ได้สร้าง Foreign key ผูกความสัมพันธ์ระหว่างตารางเอาไว้สามารถเขียนคำสั่งไว้ฝั่งฐานข้อมูลได้เลยครับโดยใช้ T-SQL สร้าง Trigger เหตุการขึ้นมา
T-SQL โค้ดตามตัวอย่างข้างล่างนี้ได้เลย

ตัวอย่างตารางที่ผมสร้าง
Pic_DB.PNG

โค้ดที่สร้างใน Trigger ของตาราง Employee กำหนดเหตุการ์ณ์ไว้หลังมีการแก้ไขข้อมูลดังนี้
  1. CREATE TRIGGER Change_Employee_Name
  2.    ON  [dbo].[Employee]
  3.    AFTER UPDATE
  4. AS
  5. BEGIN

  6.         SET NOCOUNT ON;
  7.         
  8.         -- ประกาศตัวแปร
  9.         DECLARE @Old_Emp_Name VARCHAR(50); -- เก็บค่าฟิล์ดเก่า
  10.         DECLARE @New_Emp_Name VARCHAR(50); -- เก็บค่าฟิล์ดใหม่

  11.         SET @Old_Emp_Name = (SELECT Emp_Name FROM DELETED) -- เก็บค่าฟิล์ดเก่าที่ถูกแก้ไขลบออกจากตารางไว้ใน @Old_Emp_Name
  12.         SET @New_Emp_Name = (SELECT Emp_Name FROM INSERTED) -- เก็บค่าฟิล์ดใหม่ที่ถูกแก้ไขเพิ่มเข้ามาใหม่ในตารางไว้ใน @New_Emp_Name
  13.         
  14.         -- ส่งค่า Emp_Name ใหม่จาก @New_Emp_Name ไปแก้ไขตาราง Emp_Calendar ฟิล์ด Emp_Name
  15.         UPDATE [dbo].[Emp_Calendar]
  16.             SET [Emp_Name] = @New_Emp_Name  
  17.         WHERE [Emp_Name] = @Old_Emp_Name

  18. END
คัดลอกไปที่คลิปบอร์ด

หลังจากสร้างเสร็จในตารางจะมี Trigger เหตุการณ์ขึ้นมาตามรูป
Trigger.PNG

2. หากข้อมูลต้องมีการเชื่อมแบบ Foreign key ให้ใช้วิธีนี้ครับ
สร้าง Foreign key โดยกดปุ่ม New query ขึ้นมา แล้วเขียนคำสั่งดังนี้
  1. ALTER TABLE dbo.Emp_Calendar
  2. ADD CONSTRAINT FK_Emp_Calendar_EmpName
  3. FOREIGN KEY(Emp_Name) REFERENCES dbo.Employee(Emp_Name)
  4.    ON UPDATE CASCADE
คัดลอกไปที่คลิปบอร์ด
แล้วกดปุ่ม Execute เพื่อรันคำสั่งสร้างความสัมพันธ์ของตารางทั้งสอง ก็ไม่จำเป็นต้องสร้าง Trigger ในตารางต่อไป
จะมี Foreign key เกิดขึ้นดังนี้

FK_Emp.PNG

หากคุณได้เปลี่ยนค่าในตารางหลักแล้วตารางที่ผูกความสัมพันธ์ระหว่างตารางและค่าที่ผูกไว้จะเปลียนตามค่าที่ถูกแก้ไข


2

กระทู้

7

โพสต์

66

เครดิต

Member

Rank: 2

เครดิต
66
 เจ้าของ| โพสต์ 2019-10-9 11:46:01 | ดูโพสต์ทั้งหมด

puklit ตอบกลับเมื่อ 2018-4-26 10:25
1. กรณีไม่ได้สร้าง Foreign key ผูกความสัมพันธ์ระหว่างตาราง ...

ขอบพระคุณมากๆ ครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2019-10-19 15:19 , Processed in 0.331756 second(s), 5 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้