Я абсолютно согласен с теми, кто оставил комментарии: лучший ответ - изменить тип OrderDetail.OrderID, чтобы он соответствовал OrderHeader.ID.
Выполнение чего-либо еще - это очень плохая идея .
Но, если вы по какой-то причине не можете этого сделать, вы можете создатьвнешний ключ, ... вроде .. вроде.
Вы можете создать вычисляемое поле, которое приводит один тип данных к другому, и установить внешний ключ для этого поля.Обратите внимание, что для этого вычисляемое поле должно быть сохранено.
create table OrderHeader ( ID char(12) primary key )
create table OrderDetail ( OrderID char(10),
OrderID12 as cast ( OrderID as char(12) )
persisted
foreign key references OrderHeader(ID)
)
insert into OrderHeader ( ID ) values ( 'MOH333' )
insert into OrderDetail ( OrderID ) values ( 'MOH333' )
-- this one fails
insert into OrderDetail ( OrderID ) values ( '777PIR' )