Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 我创建了一个表,但它给出了错误_Sql Server 2008 - Fatal编程技术网

Sql server 2008 我创建了一个表,但它给出了错误

Sql server 2008 我创建了一个表,但它给出了错误,sql-server-2008,Sql Server 2008,这就是我犯的错误 Msg 2716,第16级,状态1,第1行 列、参数或变量#1:无法在数据类型int上指定列宽 你不应该写INT(4) 试试这个 CREATE TABLE Client( ClientID INT(4) PRIMARY KEY NOT NULL, FirstName VARCHAR(15), LastName VARCHAR(15), StreetAddress VARCHAR(25), Suburb VARCHAR(15), "State" VARC

这就是我犯的错误

Msg 2716,第16级,状态1,第1行
列、参数或变量#1:无法在数据类型int上指定列宽

你不应该写INT(4)

试试这个

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)
);


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

除了数据类型的选择之外(在INT中存储邮政编码在美国有效,但在国际上无效,国际电话号码也可能会有问题),您似乎想要的是MySQL语法的直接映射,包括一个自动递增键(在TSQL中称为IDENTITY)


错误信息非常清楚。你可以在mysql中为int提供一个宽度,而在SQL Server中则不能。因此,你可以告诉错误的人只要去掉
int
关键字后面的
(10)
(4)
,你应该将
int(4)
更改为
int
请先尝试阅读:
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)
);
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)
);