insert 问题

jerry_zhang99 2009-12-05 02:30:03
请教大家一个问题:
我在一个表中有几个项,其中一个是ID 这个相,是按照的存储的列数递增的,就是说,我存了14项,表的id最后一条记录为13(从0开始),这样,我在向一个表添加记录的时候我要先找到id,然后+1操作,然后再INSERT into table,
请问:我该用什么好的方法直接找到id,而不是先select id,然后 +1 然后再INSERT,因为这样会做两次command,我觉得效率会降下来,
请大哥给点建议。
...全文
90 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaJiaBing 2009-12-05
  • 打赏
  • 举报
回复

--加一个自增列
alter table 表 add px int identity(1,1)
gao__910 2009-12-05
  • 打赏
  • 举报
回复
DECLARE @id INT
SELECT TOP 1 @id = [ID](主码)
FROM table
ORDER BY [DID] DESC
SET @id = @id + 1

把@id直接insert table 主码中就能用
jerry_zhang99 2009-12-05
  • 打赏
  • 举报
回复
SQL SERVER里你也可以设置一个自增列,将自增列设置为主键

比如
create table test
(
id int identity(1,1),
content varchar(10) ,
constraint pk_test_id primary key(id)
)

这样,id列就是自增的主键了。SQL SERVER 里,identity属性就表示该字段是自增列。
jerry_zhang99 2009-12-05
  • 打赏
  • 举报
回复
http://www.cnblogs.com/kimbosung/archive/2008/05/07/1187066.html
刚才看了一下,发现一个问题,就是 这里的alter 是针对access 的,而我用的是SQL Server 此处,明显指出 这句话对于SQL Server 是错误的
请问在SQL Server 下,该怎么做
jerry_zhang99 2009-12-05
  • 打赏
  • 举报
回复
这也太快了吧,大哥,谢谢
jc_liumangtu 2009-12-05
  • 打赏
  • 举报
回复
CREATE TABLE 表名(

你的ID IDENTITY (1, 1) NOT NULL ,你的其他字段... )

CREATE TABLE 表名(

你的字段ID AUTOINCREMENT(1000,10),其他字段... )

③修改起始值和步进值

ALTER TABLE 表名 ALTER COLUMN 你的字段ID COUNTER(2000,50)

④让一个删空的表自动增加字段的开始值重新从1开始

ALTER TABLE 表名 ALTER COLUMN 你的字段ID COUNTER(1,1)


参考这里
http://www.cnblogs.com/kimbosung/archive/2008/05/07/1187066.html
华夏小卒 2009-12-05
  • 打赏
  • 举报
回复
自增列?

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧