它不会创建或修改表。
它在语句的 AUTO_INCREMENT 部分给出错误。
它应该创建或更新表。
它不应该给出错误。
SQL 服务器不需要使用 AUTO_INCREMENT,而是需要 IDENTITY(1,1)。
括号中的第一个数字是起始值,第二个是增量。
例子:
创建表人员(
ID int IDENTITY(1,1) 主键,
名称 varchar(255) NOT NULL
);
这是一个很大的变化吗? 第一次PR容易吗?
我遇到了同样的问题。
这个问题有解决方案吗?
天啊! 现在是 2020 年,这仍然是开放的。 拜托,尽快解决这个问题。
仅供参考:我正在使用 HeidiSql v10.3
今天也遇到了这个。 我必须打开 SSMS 的唯一原因之一 :(
这是一个在 MS SQL 12.0.5223.6 上生成表的脚本,说明了该问题:
CREATE TABLE [dbo].[User](
[Username] [nvarchar](20) NOT NULL,
[FullName] [nvarchar](50) NOT NULL,
[EmailAddress] [nvarchar](100) NULL,
[LastLoginDate] [datetime] NULL,
[IsAdministrator] [bit] NULL,
[Roles] [int] NOT NULL,
[Id] [int] IDENTITY(1,1) NOT NULL,
[CreatedAt] [datetime2](7) NOT NULL,
[CreatedBy] [nvarchar](20) NOT NULL,
[ModifiedAt] [datetime2](7) NULL,
[ModifiedBy] [nvarchar](20) NULL,
[LastPortfolioId] [int] NULL,
CONSTRAINT [PK__User__536C85E5B3CDBFE3] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[User] ADD DEFAULT (getdate()) FOR [CreatedAt]
GO
ALTER TABLE [dbo].[User] ADD DEFAULT (suser_sname()) FOR [CreatedBy]
GO
HeidiSQL 10.3.0.5838 没有检测到主键:
这是一个在 MS SQL(可能不是非常早期的 MS SQL 版本)上选择主键索引的脚本:
select schema_name(tab.schema_id) as [schema_name],
tab.[name] as table_name,
pk.[name] as pk_name,
col.name as col_name
from
sys.tables tab
left outer join sys.indexes pk on tab.object_id = pk.object_id and pk.is_primary_key = 1
left join sys.index_columns ic on ic.index_id = pk.index_id and ic.object_id = tab.object_id
inner join sys.columns col on ic.object_id = col.object_id and ic.column_id = col.column_id
order by schema_name(tab.schema_id),
tab.[name]