我创建表但它给出了错误

时间:2014-06-05 08:13:23

标签: sql-server-2008

CREATE TABLE Client(
  ClientID INT(4) PRIMARY KEY NOT NULL,
  FirstName VARCHAR(15),
  LastName  VARCHAR(15),
  StreetAddress VARCHAR(25),
  Suburb VARCHAR(15),
  "State" VARCHAR(3),
  Postcode INT (4),
  PhoneNumber INT(10)
);

这是我得到的错误

  

Msg 2716,Level 16,State 1,Line 1
  列,参数或变量#1:无法在数据类型int上指定列宽。

3 个答案:

答案 0 :(得分:0)

你不应该写INT(4)

试试这个!

CREATE TABLE Client(
  ClientID INT PRIMARY KEY NOT NULL,
  FirstName VARCHAR(15),
  LastName  VARCHAR(15),
  StreetAddress VARCHAR(25), 
  Suburb VARCHAR(15),
  State VARCHAR(3),
  Postcode INT, --should be varchar(10)
  PhoneNumber INT -- should be varchar(12)
);

DEMO

SEE HERE

答案 1 :(得分:0)

INT数据类型没有宽度。 你必须写: ClientID INT PRIMARY KEY NOT NULL代替ClientID INT(4) PRIMARY KEY NOT NULL

答案 2 :(得分:0)

除了选择数据类型(将int中的邮政编码存储在美国但不在国际上工作,国际电话号码也可能存在问题),你似乎想要的是MySQL语法的直接映射,包括自动递增键(在TSQL中称为IDENTITY)

CREATE TABLE Client(
  ClientID INT IDENTITY PRIMARY KEY NOT NULL,
  FirstName VARCHAR(15),
  LastName  VARCHAR(15),
  StreetAddress VARCHAR(25),
  Suburb VARCHAR(15),
  "State" VARCHAR(3),
  Postcode INT,
  PhoneNumber NUMERIC(10)
);