【发布时间】:2017-01-02 13:57:04
【问题描述】:
我的问题从这里开始:How to setup auto increment for Service-Based Database
因此,如果我必须在删除表行后以这种方式重置自动增量:
http://befused.com/mysql/reset-auto-increment
我第一次处理 T-SQL 扩展和 SQL。这里有什么问题,不确定我是否正确:
CREATE TABLE [dbo].[Tab1] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Phrase] TEXT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
SELECT MAX( Id ) FROM [Tab1] ;
ALTER TABLE Tab1 AUTO_INCREMENT = number;
得到这个错误:
严重性代码描述项目文件行抑制状态错误 SQL80001: '' 附近的语法不正确。需要 '.'、ID 或 QUOTED_ID。 dbo.User 8
和:
SeverityCode 描述项目文件行抑制状态错误 SQL80001: '' 附近的语法不正确。 dbo.User 7
【问题讨论】:
-
您实际上是在运行
ALTER TABLE User AUTO_INCREMENT = number;,还是将“数字”替换为您从第一个查询中找到的值(MAX(id) 之一)? -
并非每个 SQL 都是相同的。在随机尝试并祈祷它们会起作用之前,请务必read the documentation on MySQL。
-
在每行删除后重置自动增量对我来说听起来是个坏主意。
-
如果您在每次删除行后重置自动增量,那么您做错了。如果您不需要自动增量列,请不要使用自动增量列。如果您确实需要它,请停止自己管理它并让数据库来做(这就是名称中的 auto 的意思)。 自动增量 不是意味着我在我的代码中管理自己的值;它表示插入行时数据库自动管理的值。
-
请修正您的标签:“t-sql”是 SQL 版本的 SqlServer(请参阅悬停时的标签说明),但您也谈到了 MySql——它是什么?您的问题中也没有“C#”。
标签: sql sql-server tsql auto-increment