如何设置主键自增

huhuyuan1 2010-05-30 04:16:47
小弟刚开始学习SQL 用的是SQL 2005,请问如何设置主键自增啊?
如:
create table s
(
id int not null primary key,
name varchar(20) not null
)
如何把:id 设置成自增1
...全文
2646 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxsy6669 2010-06-01
  • 打赏
  • 举报
回复
create table s
(
id int identity(初始值,1) not null primary key,
name varchar(20) not null
)
andy_liucj 2010-05-30
  • 打赏
  • 举报
回复

create table mytb
(
id int identity(起始值,步长) primary key,
col2 int,
..........
)

可以不写起始值和步长,默认都为1
另外设为主键的列就没有必要在加not null的约束了
水中影子 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xys_777 的回复:]

SQL code

create table s
(
id int identity(1,1) not null primary key,
name varchar(20) not null
)
[/Quote]

UP
wanghuaide 2010-05-30
  • 打赏
  • 举报
回复
identity(起始值,步长)
也可以在设计视图里设置
黄_瓜 2010-05-30
  • 打赏
  • 举报
回复
('Pirkko', 'O', 'Koskitalo')
黄_瓜 2010-05-30
  • 打赏
  • 举报
回复

在表中创建一个标识列。此属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。

注意:
IDENTITY 属性与 SQL-DMO Identity 属性不同,后者提供的是列的行标识属性。



Transact-SQL 语法约定

语法

IDENTITY [ (seed , increment) ]


备注
如果在经常进行删除操作的表中存在着标识列,那么在标识值之间可能会有间隔。如果这是要考虑的问题,那么请不要使用 IDENTITY 属性。但是,为了确保未产生间隔,或者填补现有的间隔,在用 SET IDENTITY_INSERT ON 显式输入标识值之前,请先对现有的标识值进行计算。

如果要重新使用已删除的标识值,则可使用示例 B 中的示例代码来查找下一个可用的标识值。使用表名称、标识列数据类型和(该数据类型)的最大允许值数值 -1 来替代 tablename、column_type 和 MAX(column_type) - 1。

使用 DBCC CHECKIDENT 检查当前的标识值,并将其与标识列中的最大值进行比较。

如果发布了包含标识列的表进行复制,则必须使用与所用复制方式相应的方式来管理标识列。有关详细信息,请参阅复制标识列。

参数
seed

装载到表中的第一个行使用的值。

increment

与前一个加载的行的标识值相加的增量值。

必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。

示例
A. 使用 IDENTITY 属性和 CREATE TABLE
以下示例将使用 IDENTITY 属性,为自动递增标识号创建一个新表。

复制代码
USE AdventureWorks
IF OBJECT_ID ('dbo.new_employees', 'U') IS NOT NULL
DROP TABLE new_employees
GO
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)

INSERT new_employees
(fname, minit, lname)
VALUES
('Karin', 'F', 'Josephs')

INSERT new_employees
(fname, minit, lname)
VALUES


-晴天 2010-05-30
  • 打赏
  • 举报
回复
IDENTITY(1, 1)
永生天地 2010-05-30
  • 打赏
  • 举报
回复

create table s
(
id int identity(1,1) not null primary key,
name varchar(20) not null
)
htl258_Tony 2010-05-30
  • 打赏
  • 举报
回复
CREATE TABLE s
(
id INT NOT NULL IDENTITY(1, 1) PRIMARY KEY
,NAME VARCHAR(20) NOT NULL
)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧