Saya ingin membuat kolom komputasi yang bertahan dalam sebuah tabel sehingga saya bisa menggunakannya sebagai bagian dari hubungan kunci asing ke tabel lain.
Saya punya tabel ini:
Peristiwa (pengidentifikasi unik EventID, EventCode varchar(8)) -- EventCode adalah kolom diskriminator
Pihak (pengidentifikasi unik EventID)
... dan saya ingin menambahkan kolom EventCode ke "Pihak" sehingga batasan kunci asing dapat menyertakan kedua kolom.
Saya sudah mencoba ini:
ALTER TABLE Parties ADD EventCode AS 'PARTY' PERSISTED
Tapi itu menambahkan kolom sebagai, entahlah, char(5) atau semacamnya (karena tipe kolom disimpulkan dari ekspresi). Jadi saya tidak bisa menghubungkannya kembali ke Events.EventCode karena kedua kolom memiliki lebar yang berbeda.
Apakah ada cara untuk menentukan lebar kolom yang dihitung, atau apakah saya harus melakukan ini (yang tampaknya jelek tapi menurut saya akan berhasil)?
ALTER TABLE Parties ADD EventCode AS CAST('PARTY' AS varchar(8)) PERSISTED