SQL Server:错误创建具有多个主键的表

Hel*_*Out 4 sql sql-server syntax-error primary-key

查询如下:

create TABLE tbl_temp (
[ref] numeric(18), 
[item_code] varchar(50), 
[item_desc] nvarchar(150),
[Qty] smallint) PRIMARY KEY (ref, item_code))
Run Code Online (Sandbox Code Playgroud)

返回错误:

消息156,级别15,状态1,行1关键字'PRIMARY'附近的语法不正确.

Rob*_*ert 8

试试这种方式:

create TABLE tbl_temp 
(
   [ ref] numeric(18), 
   [item_code] varchar(50), 
   [item_desc] nvarchar(150),
   [Qty] smallint,
   PRIMARY KEY (ref, item_code)
) 
Run Code Online (Sandbox Code Playgroud)

但更好的方法是使用constraint如下:

create TABLE tbl_temp 
(
   [ ref] numeric(18), 
   [item_code] varchar(50), 
   [item_desc] nvarchar(150),
   [Qty] smallint,
   CONSTRAINT pk_tbl_temp  PRIMARY KEY (ref, item_code)
) 
Run Code Online (Sandbox Code Playgroud)

要么

create TABLE tbl_temp 
(
   [ ref] numeric(18), 
   [item_code] varchar(50), 
   [item_desc] nvarchar(150),
   [Qty] smallint
) 

ALTER TABLE tbl_temp 
 ADD CONSTRAINT pk_tbl_temp  PRIMARY KEY (ref, item_code)
Run Code Online (Sandbox Code Playgroud)

更好的方法是因为你为你的PK设置一个友好的名字.