SQL数据库列自动生成编号?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL数据库列自动生成编号?相关的知识,希望对你有一定的参考价值。
我用的是SQL server 2005,我建了一个video表,id为文件编号,我想上传文件时,id自动按顺序编号
两种方法:
1、用Truncate
TRUNCATE TABLE name可以删除表内所有值并重置标识值
2、用DBCC CHECKIDENT
DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,
但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用 dbcc checkident("bc_pos",reseed)即可自动重设值。
注意:
只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
扩展资料:
关于上述标识列的引用
如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,
以下两条查询语句是等价的:
1、SELECT * FROM T_test WHERE IDENTITYCOL=1
2、SELECT * FROM T_test WHERE
参考技术A id设置为自增字段int identity(1,1) ,字段会自己从1开始自动增加,每多一条记录自动加1了。第一行1 第二行2 一直连续下去,删除的时候:比如说现在最大的是 4 , 你把id为4的记录删掉,后面增加的记录的id还是5,也就是他保证唯一,但不保证连续。
1、在创建的时候设置:
CREATE TABLE [dbo].[video] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
字段2,
字段3 ,
字段n
) ON [PRIMARY]
GO
2、现有表里修改:
--先将表video的数据和结构复制到表video1,同时将表video1的id字段设置自增字段
select id=identity(int,1,1) --指定需要改成自增字段的列
,字段1,字段2,字段n
into video1
from video
go
drop table video --删除表video
go
exec sp_rename 'video1','video' --修改video1表的名字为video
go本回答被提问者采纳 参考技术B 建表的时候把id列设为自增不就行了
eg: id int identity(1,1) primary key 参考技术C 主键自增长
sql如何在查出的数据前加上编号
<%'比如果在产品编号如1204前加上DW,让其编号成为DW1204
'其实就只就是一个对数据进行修改的操作,代码如下
set rs=server.CreateObject("adodb.recordset")
sql="select * from pro"
rs.open sql,conn,1,3
if not rs.eof then
do while not rs.eof
rs("pcard")="DW"&rs("pcard")
rs.movenext
loop
end if
%> 参考技术A 用row_number函数.语法是ROW_NUMBER() OVER (ORDER BY xxx),其中编号以xxx字段的顺序为准.例如
SELECT SalesOrderID, OrderDate,
ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
FROM Sales.SalesOrderHeader
参考资料:http://msdn.microsoft.com/en-us/library/ms186734.aspx
本回答被提问者采纳以上是关于SQL数据库列自动生成编号?的主要内容,如果未能解决你的问题,请参考以下文章