SQL Server 2019 ProgrammingError: Incorrect syntax near 'AUTO_INCREMENT'
SQL Server 2019 ProgrammingError: Incorrect syntax near 'AUTO_INCREMENT'
我正在尝试找出出现此错误的原因以及解决方法。
代码:
CREATE TABLE sqlalchemy_generic_types
(
'No.' INT NOT NULL AUTO_INCREMENT,
'Object Name' VARCHAR(25) NOT NULL,
'Description' VARCHAR(100) NOT NULL,
PRIMARY KEY('No.')
);
错误:
(pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'AUTO_INCREMENT'. (102) (SQLExecDirectW)")
[SQL: /* Creating a table */
CREATE TABLE sqlalchemy_generic_types (
'No.' INT NOT NULL AUTO_INCREMENT,
'Object Name' VARCHAR(25) NOT NULL,
'Description' VARCHAR(100) NOT NULL,
PRIMARY KEY('No.')
);]
(Background on this error at: http://sqlalche.me/e/13/f405)
SQL服务器不支持自增。 SQL 服务器——或任何其他数据库——也不支持列名的单引号(据我所知)。
我建议将语句写成:
CREATE TABLE sqlalchemy_generic_types (
sqlalchemy_generic_type_id INT IDENTITY(1, 1) PRIMARY KEY,
ObjectName VARCHAR(25) NOT NULL,
Description VARCHAR(100) NOT NULL
);
注意变化:
IDENTITY()
为 id 分配递增的值。
- 给
id
一个有意义的名字。
- 从
ObjectName
中删除了space,因此不需要对名称进行转义。
- 不需要转义字符来定义 table。
如果列名包含特殊字符或空格,您需要提供 double quotes
。
Auto_increment
? -- 你一定是在寻找 identity(1,1)
您可以使用以下查询:
CREATE TABLE sqlalchemy_generic_types (
"No." INT NOT NULL identity(1,1),
"Object Name" VARCHAR(25) NOT NULL,
"Description" VARCHAR(100) NOT NULL,
PRIMARY KEY("No.")
);
我正在尝试找出出现此错误的原因以及解决方法。
代码:
CREATE TABLE sqlalchemy_generic_types
(
'No.' INT NOT NULL AUTO_INCREMENT,
'Object Name' VARCHAR(25) NOT NULL,
'Description' VARCHAR(100) NOT NULL,
PRIMARY KEY('No.')
);
错误:
(pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'AUTO_INCREMENT'. (102) (SQLExecDirectW)") [SQL: /* Creating a table */ CREATE TABLE sqlalchemy_generic_types ( 'No.' INT NOT NULL AUTO_INCREMENT, 'Object Name' VARCHAR(25) NOT NULL, 'Description' VARCHAR(100) NOT NULL, PRIMARY KEY('No.') );] (Background on this error at: http://sqlalche.me/e/13/f405)
SQL服务器不支持自增。 SQL 服务器——或任何其他数据库——也不支持列名的单引号(据我所知)。
我建议将语句写成:
CREATE TABLE sqlalchemy_generic_types (
sqlalchemy_generic_type_id INT IDENTITY(1, 1) PRIMARY KEY,
ObjectName VARCHAR(25) NOT NULL,
Description VARCHAR(100) NOT NULL
);
注意变化:
IDENTITY()
为 id 分配递增的值。- 给
id
一个有意义的名字。 - 从
ObjectName
中删除了space,因此不需要对名称进行转义。 - 不需要转义字符来定义 table。
如果列名包含特殊字符或空格,您需要提供 double quotes
。
Auto_increment
? -- 你一定是在寻找 identity(1,1)
您可以使用以下查询:
CREATE TABLE sqlalchemy_generic_types (
"No." INT NOT NULL identity(1,1),
"Object Name" VARCHAR(25) NOT NULL,
"Description" VARCHAR(100) NOT NULL,
PRIMARY KEY("No.")
);