Table类型变量中的复合主键

pka*_*rio 43 variables primary-key sql-server-2008

SQL Server 2008:

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

得到:

Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'CONSTRAINT'.
Run Code Online (Sandbox Code Playgroud)

有没有办法在Table值变量中使用复合主键?

Mit*_*eat 92

您可以像这样定义复合主键:

DECLARE @MyTable TABLE
(   
    PersonID INT NOT NULL,    
    Person2ID INT NOT NULL,    
    Description NVARCHAR(100),
    PRIMARY KEY (PersonID, Person2ID)
);
Run Code Online (Sandbox Code Playgroud)