ฉันต้องการสร้างคอลัมน์จากการคำนวณที่คงอยู่ในตาราง เพื่อที่ฉันจะได้ใช้เป็นส่วนหนึ่งของความสัมพันธ์ของคีย์นอกกับตารางอื่นได้
ฉันมีตารางเหล่านี้:
เหตุการณ์ (ตัวระบุที่ไม่ซ้ำกันของ EventID, EventCode varchar(8)) -- EventCode เป็นคอลัมน์ตัวแยกแยะ
ฝ่าย (ตัวระบุที่ไม่ซ้ำกันของ EventID)
... และฉันต้องการเพิ่มคอลัมน์ EventCode ใน "Parties" เพื่อให้ข้อ จำกัด ของคีย์ต่างประเทศสามารถรวมทั้งสองคอลัมน์ได้
ฉันได้ลองสิ่งนี้แล้ว:
ALTER TABLE Parties ADD EventCode AS 'PARTY' PERSISTED
แต่นั่นจะเพิ่มคอลัมน์เป็น ฉันไม่รู้ char(5) หรืออะไรสักอย่าง (เนื่องจากประเภทของคอลัมน์อนุมานจากนิพจน์) ดังนั้นฉันจึงไม่สามารถเชื่อมโยงมันกลับไปที่ Events.EventCode ได้เนื่องจากทั้งสองคอลัมน์มีความกว้างต่างกัน
มีวิธีระบุความกว้างของคอลัมน์จากการคำนวณหรือไม่ หรือฉันต้องทำเช่นนี้ (ซึ่งดูน่าเกลียดแต่ฉันคิดว่าจะได้ผล)
ALTER TABLE Parties ADD EventCode AS CAST('PARTY' AS varchar(8)) PERSISTED