Sql 重置自动增量
我的问题从这里开始: 因此,如果在删除表行后必须按此方式重置自动增量: 我第一次处理T-SQL扩展和SQL。这里出了什么问题,不确定我是否正确:Sql 重置自动增量,sql,sql-server,tsql,auto-increment,Sql,Sql Server,Tsql,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
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或带引号的\u ID。
dbo.User 8
以及:
SeverityCode说明项目文件行抑制状态错误
SQL80001:附近的语法不正确。dbo.User 7
MYSQL
MSSQL,以防有人需要它
CREATETABLE语法还可以,但在创建自动增量列时,可以这样添加它
CREATE TABLE [dbo].[User] (
[Id] INT NOT NULL AUTO_INCREMENT PRIMARY KEY, // Set column as primary key and auto increment
[Phrase] TEXT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
从[用户]中选择最大Id;//您忘记了这部分中的括号,users是TSQL中的保留字
MSSQL,以防有人需要它
CREATETABLE语法还可以,但在创建自动增量列时,可以这样添加它
CREATE TABLE [dbo].[User] (
[Id] INT NOT NULL AUTO_INCREMENT PRIMARY KEY, // Set column as primary key and auto increment
[Phrase] TEXT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
从[用户]中选择最大Id;//您忘记了这部分中的括号,Useris是TSQL中的保留字。如果您想重新设定为不同的号码,您可以使用以下命令:
dbcc checkident(tab1, reseed, 100)
如果要重新设定为不同的号码,可以使用以下选项:
dbcc checkident(tab1, reseed, 100)
您是否正在实际运行ALTER TABLE User AUTO_INCREMENT=number;或者用从第一个查询中找到的值(MAXid)替换number?不是每个SQL都是相同的。在尝试随机操作并祈祷它们能正常工作之前,请务必确保。在每次删除行后重置自动增量对我来说是个坏主意。如果在每次删除行后重置自动增量,则说明您做错了。如果不需要自动增量列,请不要使用自动增量列。如果您确实需要它,请停止自己管理它,让DB来做这就是名称中的“自动”的含义。自动递增并不意味着我在代码中管理自己的值;这意味着DB在插入行时自动管理的值。请修复您的标记:t-sql是sql Server的sql版本请参见hover上的标记说明,但您也谈到了MySql-它是哪一个?你的问题中也没有C,你真的在运行ALTERTABLE User AUTO_INCREMENT=number;或者用从第一个查询中找到的值(MAXid)替换number?不是每个SQL都是相同的。在尝试随机操作并祈祷它们能正常工作之前,请务必确保。在每次删除行后重置自动增量对我来说是个坏主意。如果在每次删除行后重置自动增量,则说明您做错了。如果不需要自动增量列,请不要使用自动增量列。如果您确实需要它,请停止自己管理它,让DB来做这就是名称中的“自动”的含义。自动递增并不意味着我在代码中管理自己的值;这意味着DB在插入行时自动管理的值。请修复您的标记:t-sql是sql Server的sql版本请参见hover上的标记说明,但您也谈到了MySql-它是哪一个?你的问题中也没有C。TSQL?这个问题是关于MySql的。原始问题对于它是什么非常困惑。创建表语法基本上是相同的。这是一个困惑的问题。仍然不确定他是在尝试创建新表还是只是在现有表上重置自动增量。@MolC MSSQL指的是Microsoft SQL Server。MySQL是另一个不兼容的数据库。它不是从Mycrosoft来的。它们有不同的命令、语法和许多其他非常重要的差异。你用哪一种?您收到的错误建议使用Microsoft SQL Server.TSQL?这个问题是关于MySql的。原始问题对于它是什么非常困惑。创建表语法基本上是相同的。这是一个困惑的问题。仍然不确定他是在尝试创建新表还是只是在现有表上重置自动增量。@MolC MSSQL指的是Microsoft SQL Server。MySQL是另一个不兼容的数据库。它不是从Mycrosoft来的。它们有不同的命令、语法和许多其他非常重要的差异。你用哪一种?您收到的错误表明是Microsoft SQL Server。