Led*_*key 416 sql-server identity sql-server-2012
我如何auto increment
在primary key
一个SQL Server
数据库表,我已经通过论坛看看,但不能看到.
我查看了属性,但看不到一个选项,我看到了一个答案,你去了Identity
规范属性并将其设置为是并设置Identity increment
为1,但该部分显示为灰色,我无法更改不,是的.
必须有一个简单的方法来做到这一点,但我找不到它.
Raa*_*aab 666
确保Key列的数据类型为int
,然后手动设置identity,如图所示
或者 只是运行此代码
-- ID is the name of the [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
Run Code Online (Sandbox Code Playgroud)
代码将运行,如果ID
不是表中的唯一列
图像参考fifo's
Jos*_*ien 168
在创建表时,可以IDENTITY
按如下方式创建列:
CREATE TABLE (
ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
...
);
Run Code Online (Sandbox Code Playgroud)
该IDENTITY
属性将从1开始自动递增列.(请注意,列的数据类型必须是整数.)如果要将其添加到现有列,请使用ALTER TABLE
命令.
编辑:
测试了一下,我找不到通过列属性窗口为各种表更改标识属性的方法.我想如果你想让列成为一个标识列,你必须使用一个ALTER TABLE
命令.
gbn*_*gbn 84
您必须展开"标识"部分以显示增量和种子.
编辑:我假设你有一个整数数据类型,而不是char(10).当我发布这个答案时,这是合理的我会说并且有效
小智 33
展开数据库,右键单击表格,然后从下拉列表中选择设计.
现在转到下面的列属性向下滚动并找到身份规范,展开它,你会发现Is Identity是否为Yes.现在选择下面的Identity Increment,给出你想要增加的值.
也许我错过了一些东西,但为什么这不适用于SEQUENCE对象呢?这不是你想要的吗?
例:
CREATE SCHEMA blah.
GO
CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;
CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc
Run Code Online (Sandbox Code Playgroud)
在引用INSERT命令时引用squence时,只需使用:
NEXT VALUE FOR blah.blahsequence
Run Code Online (Sandbox Code Playgroud)
有关SEQUENCE的更多信息和选项
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
Run Code Online (Sandbox Code Playgroud)
MS SQL Server 使用 IDENTITY 关键字来执行自动递增功能。
在上面的例子中,IDENTITY 的起始值是 1,它会为每条新记录递增 1。
提示:要指定“Personid”列应从值 10 开始并按 5 递增,请将其更改为 IDENTITY(10,5)。
要将新记录插入到“Persons”表中,我们不必为“Personid”列指定值(将自动添加唯一值):
归档时间: |
|
查看次数: |
1043170 次 |
最近记录: |