Compound primary key in Table type variable

pkario picture pkario · Sep 14, 2009 · Viewed 25.9k times · Source

SQL Server 2008:

DECLARE @MyTable TABLE(
    PersonID INT NOT NULL,
    Person2ID INT NOT NULL,
    Description NVARCHAR(100),
CONSTRAINT PK PRIMARY KEY CLUSTERED (PersonID, Person2ID)
);

Gives:

Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'CONSTRAINT'.

Is there any way to have compound Primary key in Table valued variables?

Answer

Mitch Wheat picture Mitch Wheat · Sep 14, 2009

You can define a composite primary key like this:

DECLARE @MyTable TABLE
(   
    PersonID INT NOT NULL,    
    Person2ID INT NOT NULL,    
    Description NVARCHAR(100),
    PRIMARY KEY (PersonID, Person2ID)
);