在表中怎样使主键自动设置成当前所在行的序列号? 20CSDN]

发布时间:2017-1-23 20:40:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"在表中怎样使主键自动设置成当前所在行的序列号? 20CSDN]",主要涉及到在表中怎样使主键自动设置成当前所在行的序列号? 20CSDN]方面的内容,对于在表中怎样使主键自动设置成当前所在行的序列号? 20CSDN]感兴趣的同学可以参考一下。

请问:在表中怎样使主键自动设置成当前所在行的序列号?  比如有表如下: 编号 名称 规格 那怎样在插入数据时使编号自动为当前所在行号? 谢谢

关系数据库的表并无先后之分(虽然物理存储有先后) 如果要保证插入的编号不重复,可在插入前用一语句或写一存储过程以获得最大编号 可用 select top 1 编号 from 表名 order by 编号 desc 如果查询结果无记录,即表尚未插入记录 如果查询结果有记录,将记录中的编号+1即为最大编号

这个办法好是好,但遇到中间有删除的就不能保证编号的连续性了. 高手还有其他好办法吗???

借LZ的问题顺便求教一下: 用SELECT 得到一个记录集后,怎样得到某一条记录的行号?比如你在查询分析器中SELECT之后,可以看到1、2、3……,怎样把它取出来?在ADO中有AbsolutePosition可以用,在T-SQL中呢?如果在表中设一列IDENTITY,但是它也有可能是不连续的(比如删除了当中一些记录)。如果不采用游标,也不采用将数据导入带有IDENTITY列的临时表再导出来,该怎样做? --------------------------------------------------- 其实偶的问题也应该是LZ的问题,不算违规啊^_^

----建表 create table #ta (tname varchar(50),tgrade int) ---插数据 insert into #ta values ('jack',100) insert into #ta values ('tom',100) insert into #ta values ('mike',100) insert into #ta values ('google',100) insert into #ta values ('baidu',100) select IDENTITY(int,1,1) as id ,* into #tb from #ta select * from #tb drop table #tb 这样就可以了.

楼上的方法可行

你要的列是一个伪列,就象Oracle的Rownum吧! SQL Server本身不提供这个功能

用 IDENTITY() 函数

select IDENTITY(int,1,1) as id ,* into #tb from #ta

老是有人问这个问题,数据库中连续号是一定要的吗?可以在前端显示时再处理就行了嘛!

顶楼上。 这种问题应该放到客户端来处理。

可以用SQL Server2005 的Row_Number()函数! 这类问题,是一个数据库未入门的人提的问题!

楼上 Row_Number()是2005才有的函数 2000是没有的 2000就只能用IDENTITY()来实现一个伪列 而且IDENTITY(),需要和into来一起使用

上一篇:这个触发器如何写 当某个表记录的字段仅仅只有10的时候去调用一个存储过程 1CSDN]
下一篇:数据库连接 20linjuan0215]

相关文章

相关评论