简单存储过程问题

livi 2003-06-12 09:26:06
在编写存储过程时,用insert语句添加是否默认插入到表的最后一条记录?否则应该怎样才能每次均只插入到表的未尾?
谢谢!
...全文
42 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tarky_z 2003-06-19
  • 打赏
  • 举报
回复
oracle中使用序列的值做主键比较常用的做法。方法很简单
create sequence 序列名(seq_test);

insert into table_tmp (id, name) values (seq_test.nextval, 'livi');

或者
long ll_id
select seq_test.nextval into :ll_id;
insert into table_tmp (id, name) values (:ll_id, 'liviss')

888888888888 2003-06-13
  • 打赏
  • 举报
回复
同意楼上去oracle版
bzszp 2003-06-13
  • 打赏
  • 举报
回复
楼主用的是oracle数据库?
到oracle版基础版上面置顶的一篇贴子
bzszp 2003-06-13
  • 打赏
  • 举报
回复
create table tbname (a int identity)

或者
CREATE TRIGGER 名 on 表
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO 表 SELECT isnull((select max(id) from 表),0)+1,其他列 FROM inserted
END

shahand 2003-06-13
  • 打赏
  • 举报
回复
sequence是指oracle中的序列
livi 2003-06-13
  • 打赏
  • 举报
回复
请问tarky_z(),用sequence做主键具体怎么实现?
tarky_z 2003-06-13
  • 打赏
  • 举报
回复
按时间排序是个办法,不过用sequence做主键可能更好,保证后面insert的数据的主键比前面的大。按主键排序select不就省事了?
livi 2003-06-13
  • 打赏
  • 举报
回复
多谢qiyousyc的思路,我试一下,成功之后马上结帐
caolei1974 2003-06-13
  • 打赏
  • 举报
回复
同意楼上
qiyousyc 2003-06-13
  • 打赏
  • 举报
回复
不论什么表或数据库,insert语句不能保证插入到表的最后一条记录。
唯一的解决办法是按新增字段(插入时间),然后select时,按此字段排序。
bzszp 2003-06-13
  • 打赏
  • 举报
回复
物理地址不一定是在最后
可能放在以前删除的数据所在的空间里面
livi 2003-06-13
  • 打赏
  • 举报
回复
我是用sqlserver2000的
谢谢大家!
livi 2003-06-12
  • 打赏
  • 举报
回复
我的表是临时表,使用intser #aaa(dd)的方法插入,但每次用select * from #aaa取出时顺序会有变化,请问是什么原因?
hanps 2003-06-12
  • 打赏
  • 举报
回复
如果你有 索引 和主键的话,数据库会自动帮你排序的 ,所有不一定 在最后一条
wangsw 2003-06-12
  • 打赏
  • 举报
回复
有无簇式索引??
有的话就不行了
HITZXL 2003-06-12
  • 打赏
  • 举报
回复
当然是默认插到末尾了!!

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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