Adding Foreign Key, SQL SERVER 2008

This error usually means the datatypes are different between "Comments" and "Person", assuming this is the actual message

The SQL should be this

ALTER TABLE tbl_Comments WITH CHECK ADD
 CONSTRAINT FK_Comments_Person FOREIGN KEY (P_ID) REFERENCES tbl_Person (P_ID)

This matches what you added. So:

  • check datatypes are both int
  • ensure P_ID is primary key on tbl_Person
  • (Edit, Dec 2011) collation and length must be the same for varchar columns too

In Object Explorer, connect to an instance of Database Engine.

On the Standard bar, click New Query.

The example creates a foreign key on the column TempID and references the column SalesReasonID in the Sales.SalesReason table.

  USE AdventureWorks2012;
  GO
  ALTER TABLE Sales.TempSalesReason 
  ADD CONSTRAINT FK_TempSales_SalesReason FOREIGN KEY (TempID) 
  REFERENCES Sales.SalesReason (SalesReasonID) 
  ON DELETE CASCADE
  ON UPDATE CASCADE
  ;
  GO