Je veux créer une relation de key étrangère dans une table, mais la colonne que je veux donner relation a un caractère supplémentaire. Par exemple dans la key primaire si c'est PPL dans l'autre table (Foreignkey) c'est PPL.M. Quelqu'un pourrait-il me dire comment je peux donner une relation entre ces deux colonnes. Comment éviter le caractère supplémentaire.
Cordialement KK
Vous pouvez append une colonne calculée à la table référencée pour découper le caractère supplémentaire
alter table tablea add coly as (subssortingng(colx,1,5)) persisted
Puis referencez cette colonne à la place
alter table tableb create constraint fk_tableb_colx foreign key (colx) references tablea(coly)
Vous pouvez également utiliser un triggersur
create sortinggger trg_tableb_fk_colx on tableb for insert, update as begin if exists(select 1 from inserted where inserted.colx not in(select subssortingng(colx, 1, 5) from tablea)) begin raiserror('violation of foreign key trg_tableb_fk_colx',16,1) end end
Peut-être que vous devez créer une Foreign Key
avec l'option NOCHECK
ALTER TABLE dbo.child_table WITH NOCHECK ADD CONSTRAINT FK_childtable FOREIGN KEY (child_col) REFERENCES dbo.Parent_table(Parent_col)