数据库自增列

数据库自增列,第1张

在原本的自动增长列上实现你的要求是不可能的,如果你非要这么做,我有个办法,就是把自动增长关掉,例子如下:

create table z (id int primary key(id))

go

create function f_id ()

returns int

as

begin

declare @id int,@i int,@count int,@maxid int

select @i=1

select @count=count() from z

select @maxid=max(id) from z

if @maxid is null

select @id=1

else

if @count=@maxid

select @id=@maxid+1

else

while @i<=@maxid

begin

if not exists (select from z where id=@i)

begin

select @id=@i

break

end

select @i=@i+1

end

return @id

end

go

insert into z values (dbof_id())

以上,希望对你有所帮助!

一、通过T-SQL代码

代码如下:

alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL

这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1

二、通过企业管理器

打开对象资源管理器,新建表,如下图

插入列,设置列属性,标识增量为步长,标识种子为开始数,如下图

SQL标识列的查询

1、判段一个表是否具有标识列

可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,用法:

Select OBJECTPROPERTY(OBJECT_ID('表名'),'TableHasIdentity')

如果有,则返回1,否则返回0

2、判断某列是否是标识列

可使用 COLUMNPROPERTY 函数确定 某列是否具有IDENTITY 属性,用法

SELECT COLUMNPROPERTY( OBJECT_ID('表名'),'列名','IsIdentity')

如果该列为标识列,则返回1,否则返回0

3、查询某表标识列的列名

SQL Server中没有现成的函数实现此功能,实现的SQL语句如下

SELECT COLUMN_NAME FROM INFORMATION_SCHEMAcolumns

   WHERE TABLE_NAME='表名' AND  COLUMNPROPERTY(      

      OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1

4、标识列的引用

如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替

例如,若要查询上例中ID等于1的行,

以下两条查询语句是等价的

SELECT  FROM T_test WHERE IDENTITYCOL=1

SELECT  FROM T_test WHERE ID=1

5、获取标识列的种子值

可使用函数IDENT_SEED,用法:

SELECT IDENT_SEED ('表名')

6、获取标识列的递增量

可使用函数IDENT_INCR ,用法:

SELECT IDENT_INCR('表名')

7、获取指定表中最后生成的标识值

可使用函数IDENT_CURRENT,用法:

SELECT IDENT_CURRENT('表名')

注意事项:当包含标识列的表刚刚创建,为经过任何插入 *** 作时,使用IDENT_CURRENT

函数得到的值为标识列的种子值,这一点在开发数据库应用程序的时候尤其应该注意。

SQL Server自增字段可以在SQL Server Management Studio或使用SQL语句在程序或者查询分析器里面实现,将为您分别说明。

一、在SQL Server Management Studio中实现SQL Server自增字段

打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定好了。

二、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段

sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)

create table tablename

(

id int identity(1,1)

)

这样设置之后,tablename数据表中的id字段就是自增列。

如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果你希望得出结果是a001可以这么做select 'a'+convert(varchar(20),id) from tablename,这里的tablename是你建立的具体的表明。

以上就是关于数据库自增列全部的内容,包括:数据库自增列、SQL Server 2008怎样添加自增列实现自增序号、怎么查找SQL Server中哪个字段绑定了自动增长列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10180032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存