views:

33

answers:

1

This is a 2 part question.

Question 1: I am trying to create a foreign key on a table where I need to turn off the "Check Existing Data on Creation or Re-Enabling". I know theres an option visually but I'm looking for a way to do it programmatically. Is there anyway to do this?

Question 2: I have a code table and two tables A and B that need to reference that code table. I want to have these both referenced from a relationship table but I want to able to use the same column. Can I have 2 foreign keys pointing to the same column?

+4  A: 

Yes you can have the same column inthe parent table refer to differnt columns in multiple tables.

I do not recommend turning off checking FK on creation. If you have bad data now, you need to fix it now. Otherwise the first time someone edits one of those records it will fail the FK check then.

From Books online as to why it is a bad idea to use nocheck:

If you do not want to verify new CHECK or FOREIGN KEY constraints against existing data, use WITH NOCHECK. We do not recommend doing this, except in rare cases. The new constraint will be evaluated in all later data updates. Any constraint violations that are suppressed by WITH NOCHECK when the constraint is added may cause future updates to fail if they update rows with data that does not comply with the constraint.

HLGEM
Do you know the command to turn off checking though? And it would be A.ID-->Rel.ID , B.ID-->Rel.ID cant they both be foreign keys? (Notice the way the arrow is pointing)
Gage
If you want one column to point to two different parent keys, no don't do that. Make join tables instead for each of the two keys where you can properly enforce the relationship or use two fields and allow nulls.
HLGEM