sql server建表时设置ID字段自增的简单方法

  1. 打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表
  2. 列属性中,通过设置“标识规范”的属性可以设置字段自增,从下图上看,“是标识”的值是否,说明id还不是自增字段
  3. 能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的。比如查看name的列属性时,可以看到“是标识”是否且不可更改。
  4. 点击“标识规范”,展开后,点击“是标识”会出现下拉列表按钮,可以双击设置也可以从下拉列表选择。
  5. 设置“是标识”的值是“是”之后,可以看到下面的属性会默认写上值
  6. 可以设置标识增量和标识种子。标识增量是字段每次自动增加的值,比如1,则字段每次增加1;标识种子是字段的初始值,比如1,则第一条记录的该字段值是1
  7. 设置完成后,别忘记点击“保存”

END

注意事项

设置自增字段时要注意字段的类型,不是所有字段类型都可以设置自增的

SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入。

1. SQLServer 自增主键创建语法:

identity(seed, increment)

其中

seed 起始值

increment 增量

示例:

create table student(
   id int identity(1,1),
   name varchar(100)
)

2. 指定自增主键列值插入数据(SQL Server 2000)

先执行如下语句

SET IDENTITY_INSERT [ database. [ owner. ] ] { table } ON

然后再执行插入语句

最后执行如下语句

SET IDENTITY_INSERT [ database. [ owner. ] ] { table } OFF

示例:

表定义如下

create table student(
   id int identity(1,1),
   name varchar(100)
)

插入数据

set IDENTITY_INSERT student ON
insert into student(id,name)values(1,'student1');
insert into student(id,name)values(2,'student2');
set IDENTITY_INSERT student OFF

总结

以上所述是小编给大家介绍的sql server建表时设置ID字段自增的简单方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • SQL Server 2008怎样添加自增列实现自增序号

    在做<机房收费系统>的时候,有的表需要添加自增列,在添加新纪录时自动添加一个序号.下面我给大家介绍两种添加方法: 一.通过T-SQL代码. 复制代码 代码如下: alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL 这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1 二.通过企业管理器 打开对象资源管理器,新建表,如下图  插入列,设置列属

  • SqlServer Mysql数据库修改自增列的值及相应问题的解决方案

    SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是严格不允许的,直接报错(无法更新标识列 '自增列名称').sql server我测试是2008.2012和2014,都不允许变更自增列值,我相信SQL Server 2005+的环境均不允许变更字段列值. 如果非要在SQL Server 平台修改自增列值的,那就手动需要自增列属性,然后修改该列值,修改成功后再手动添加自增列属性.如果在生成环境修改

  • SQL Server设置主键自增长列(使用sql语句实现)

    1.新建一数据表,里面有字段id,将id设为为主键 复制代码 代码如下: create table tb(id int,constraint pkid primary key (id)) create table tb(id int primary key ) 2.新建一数据表,里面有字段id,将id设为主键且自动编号 复制代码 代码如下: create table tb(id int identity(1,1),constraint pkid primary key (id)) create

  • SQL Server 中调整自增字段的当前初始值

    前几天在把一个Communtiy Server 的数据库从SQL 2000升级到SQL 2005 的时候,碰到一个怪异的问题,报如下错误: Violation of PRIMARY KEY constraint 'PK_cs_Threads'. Cannot insert duplicate key in object 'dbo.cs_Threads'. 分析进去后,竟然发现这个表的自增字段数据库中已经达到了6144,而数据库维护的这个表的初始自增值只到6109. 解决方法很简单,利用以下SQL

  • SQL Server 打开或关闭自增长

    在往数据库表中添加一行的时候,要针对自增列插入一个特定值的时候,这个函数就很有用了,比如表结构如: id |  text 1  |    a 2  |    b 4  |   d 其中id列是自曾列,如果我们要插入3  |  c的话,如果没有打开自增列,肯定是插不进去的,这时候用这个函数就有作用了 复制代码 代码如下: SET IDENTITY_INSERT [Recursive] ON   INSERT INTO [Recursive](id,text) VALUES(3,'c')   SET

  • Oracle 实现类似SQL Server中自增字段的一个办法

    相关代码如下: 1. 创建sequence: 复制代码 代码如下: CREATE SEQUENCE SEQU_DATA_DATAINFO INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER; 2. 创建触发器: 复制代码 代码如下: create or replace TRIGGER TRIG_TEST BEFORE INSERT ON TABLE1 FOR EACH ROW DECLARE tmpVar NUMBER; BEGIN tmpVa

  • SQL SERVER 自增列

    declare @Table_name varchar(60) set @Table_name = ''; if Exists(Select top 1 1 from sysobjects           Where objectproperty(id, 'TableHasIdentity') = 1             and upper(name) = upper(@Table_name)         )     select 1else select 0 -- or if Ex

  • SQL Server修改标识列方法 如自增列的批量化修改

    通过界面设计上是能手工操作的,无法达到我批量修改几千台服务器. 因为此了一个脚本来批量执行. 环境:redgate + mssql 2008 r2 以下代码根据自己的业务稍做修改即使用. 复制代码 代码如下: --允许对系统表进行更新 exec sp_configure 'allow updates',1 reconfigure with override GO --取消标识列标记 update syscolumns set colstat = 0 where id = object_id('t

  • sql server建表时设置ID字段自增的简单方法

    打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表 列属性中,通过设置"标识规范"的属性可以设置字段自增,从下图上看,"是标识"的值是否,说明id还不是自增字段 能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的.比如查看name的列属性时,可以看到"是标识"是否且不可更改. 点击"标识规范",展开后,点击"是标识"会出现下拉

  • sql server建库、建表、建约束技巧

    下面给大家分享下sql server建库.建表.建约束技巧,下文介绍有文字有代码. --创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建-- --exists关键字:括号里边能查询到数据则返回'true' 否则返回'false' if exists(select * from sysdatabases where name = 'School') --exists返回'true'则执行删除数据库操作-- drop database School --exi

  • SQL Server删除表及删除表中数据的方法

    本文介绍SQL Server中如何删除表,如何删除表中的数据.在删除表数据时有delete和truncate两种方法,delete和truncate有什么区别呢? SQL Server,我们现在基本上使用的最古老的版本应该是SQL Server 2000吧,应该没有更早的版本了吧?!从SQL Server 2000开始,到SQL Server 2005,2008,2012等,T-SQL的处理能力越来越强.今天我们就来说说如何使用T-SQL脚本来删除表,以及删除表中的数据. 删除表和删除表数据这是

  • SQL Server 公用表表达式(CTE)实现递归的方法

    公用表表达式简介: 公用表表达式 (CTE) 可以认为是在单个 SELECT.INSERT.UPDATE.DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集.CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效.与派生表的不同之处在于,公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE.递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式. 下面先创建一个表,并插入一些数据: crea

  • SQL Server多表查询优化方案集锦

    SQL Server多表查询的优化方案是本文我们主要要介绍的内容,本文我们给出了优化方案和具体的优化实例,接下来就让我们一起来了解一下这部分内容. 1.执行路径 ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就 可能要几十秒了.这是因为ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询..数据库管理员必须在init.o

  • EFCore 通过实体Model生成创建SQL Server数据库表脚本

    在我们的项目中经常采用Model First这种方式先来设计数据库Model,然后通过Migration来生成数据库表结构,有些时候我们需要动态通过实体Model来创建数据库的表结构,特别是在创建像临时表这一类型的时候,我们直接通过代码来进行创建就可以了不用通过创建实体然后迁移这种方式来进行,其实原理也很简单就是通过遍历当前Model然后获取每一个属性并以此来生成部分创建脚本,然后将这些创建的脚本拼接成一个完整的脚本到数据库中去执行就可以了,只不过这里有一些需要注意的地方,下面我们来通过代码来一

  • SQL Server数据表压缩

    概述 SQL Server的主要性能取决于磁盘I/O效率,SQL Server .2008提供了数据压缩功能来提高磁盘I/O效率.表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆表.聚集索引的表.非聚集索引的表.索引视图.分区表上. 可压缩的数据类型 smallint.int.Bigint.decimal.numeric.real.float.money.smallmoeny.bit.datetime.datetime2.datetimeoffset.char.nchar.binary.ro

  • 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器

    今早开机发现,打开SQL Server 2008 的 SQL Server Management Studio,输入sa的密码发现,无法登陆数据库?提示以下错误: "在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)" 在网上看到他人说使用将服务器(local

  • 彻底删除SQL Server注册表的方法

    一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

  • Microsoft SQL Server 2005 Express 远程访问设置详述,100%成功篇

    概述 Microsoft SQL Server 2005 Express Edition是Microsoft数据库的低端解决方案,是免费的,并且可以随软件免费发布,而就其数据库功能对于一般的企业级应用已足够了.但 默认安装时只允许本地访问,而不能远程访问.为了解决这种问题,网上有不少文章进行了介绍,但是都不全,如果你照着做,大都只完成了部份功能,而不能完全成功.本人查了大量资料,几次都想放弃,最终还是成功配置了,现写本文详细阐述 SQL Server 2005 Express Edition 启

随机推荐