自增长字段自定义

CREATE TABLE #t (id int IDENTITY(1,1) PRIMARY KEY,nums varchar(10))
 INSERT INTO #t
SELECT ‘BH‘+cast(abs(CHECKSUM(NEWID())%100000) as varchar(8))
GO 10

时间: 2024-10-05 05:04:49

自增长字段自定义的相关文章

[转载]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法

问题描述: 假设在数据库中存在以下两张数据表: User表,存放用户的基本信息,基本结构如下所示:   类型 说明 ID_User int 自动增长字段,用作该表的主键 UserName varchar   UserDepart表,存放用户所拥有的部门(我们假设一个用户拥有多个部门,虽然听起来有点别扭,此处仅作示例,可以理解为一个用户拥有多个职位等等),该表的基本结构如下所示:   类型 说明 ID_UserDepart int 自动增长字段,用作该表的主键 ID_User int 用户编号 I

多层下firebird自增长字段的处理

使用unidac可以解决自增长字段处理的问题. 对于多层就是一个比较烦人的事情,解决办法:cliendataset中自增长字段的处理:id:自增长字段.在client中的处理方法:clientdataset.Fields.FieldByName('id').ReadOnly:=False;后面该怎么处理就怎么处理.忘了说一句:后台是unidac连接数据库. 对于firebird的处理更简单,解决多层自增字段的简单有效办法:直接取出自增长ID,然后直接写进表中.SELECT GEN_ID(gen_

Oracle添加自增长字段方法步骤

第一步:创建自增长序列 CREATE SEQUENCE ZH_ALARM_INFO_SEQ--自动增长列 INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区 3.建立触发器: 第二步:根据第一步创建的序列,为有自增长字段的表创建触发器 CREATE OR REPLACE TRIGGER Trigger_ZH_ALARM_INFO BEFOR

当插入数据失败时,防止mysql自增长字段的自增长的方法

问题描述: 当mysql设置了自增长字段时(注意:一个表中只能设置一个自增长字段,可以不是主键,但必须是键 ),如果插入数据失败,那么自增长字段仍然会占用这个自增长值,再次成功插入数据时就会造成断层. 原因: 自增是缓存在内存字典中的,分配方式是先预留,然后再插入的.所以插入失败不会回滚内存字典. 解决方法: 在php程序中可以加一段代码,当插入数据失败时,执行sql语句重新设置auto_increment的值: $sql = alter table `tbname` auto_incremen

程序员的SQL经典笔记1_自动增长字段

自动增长字段在设计数据库的时候,有时需要表的某个字段是自动增长的,最常使用自动增长字段的就是表的主键,使用自动增长字段可以简化主键的生成.不同的DBMS中自动增长字段的实现机制也有不同,下面分别介绍. MYSQL 中设定一个字段为自动增长字段非常简单,只要在表定义中指定字段为AUTO_INCREMENT即可.例子: create table t_student ( t_id int primary key auto_increment, t_name varchar(50), t_age int

Mysql复合主键中自增长字段

Google Analytics的ID一般形如:UA-18xxxxx-1,UA-18xxxxx-4, 我们可以将它分成两段来看:字段1:UA-18XXXXX是指帐户的ID:字段2:字段1后附加的1.4,刚分别是指该帐户名下的两个网站.有一段时间很 纠结这样的ID怎么去维护,直到最近查阅到Mysql手册才发现,原来Mysql原生就很好的支持了这种含自动增长字段的复合主键,所以字段2是存储引擎 自动计算出来的.计算方式:MAX(auto_increment_column) + 1 WHERE pre

Oracle 中的自动增长字段

环境:PLSQL Developer 7.1.5 Oracle 11.2.0 Oracle 中不像MYSQL和MSSQLServer中那样指定一个列为自动增长列的方式,不过在Oracle中可以通过SEQUENCE序列来实现自动增长字段.在Oracle中SEQUENCE被称为序列,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 在使用SEQUENCE前需要首先定义一个SEQUENCE,定义SEQUENCE的语法如下: CREATE SEQUENCE sequence_name INCR

触发器_实现ORACEL自动增长字段

实现XX表的字段code,为自动增长字段? 1.创建一个sequence,如图: 输入如下数据: S_COUNTRY为sequence名称 2.创建一个触发器,目的是在插入数据之前插入自动增长的数字,创建触发器 然后填写代码 create or replace trigger t_carmessage before insert on tb_carmessage for each row declare -- local variables here begin select S_COUNTRY

mysql只能设置一个自增长字段

MySQL 错误:there can be only one auto column and it must be defined as a key 原因是你有一个字段A设置了auto_increment,另一个字段B又被设为主键,这是错误的,因为MySQL将自动增长的字段看作主键,因此按照这样的逻辑,你的表里就有两个主键,所以方法是将B字段的主键索引去掉,如果你的意思是想让B字段的数据不重复,那么你可以使用Unique来限制.