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

时间:2013-05-16 06:47:31

标签: 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))

返回错误:

  

第15行,第1行,第1行,第1行   关键字'PRIMARY'附近的语法不正确。

2 个答案:

答案 0 :(得分:8)

尝试这种方式:

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

但更好的方法是使用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)
) 

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)

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

答案 1 :(得分:0)

而是尝试

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

看一下这个例子

SQL Fiddle DEMO