Я хочу создать постоянный вычисляемый столбец в таблице, чтобы я мог использовать его как часть отношения внешнего ключа к другой таблице.
У меня есть эти таблицы:
События (EventID uniqueidentifier, EventCode varchar (8)) - EventCode - это столбец дискриминатора
Стороны (уникальный идентификатор события)
... и я хочу добавить столбец EventCode в «Стороны», чтобы ограничение внешнего ключа могло включать оба столбца.
Я пробовал это:
ALTER TABLE Parties ADD EventCode AS 'PARTY' PERSISTED
Но это добавляет столбец как, я не знаю, char (5) или что-то еще (поскольку тип столбца выводится из выражения). Поэтому я не могу связать его обратно с Events.EventCode, потому что два столбца имеют разную ширину.
Есть ли способ указать ширину вычисляемого столбца, или мне придется сделать это (что кажется уродливым, но я думаю, что будет работать)?
ALTER TABLE Parties ADD EventCode AS CAST('PARTY' AS varchar(8)) PERSISTED