不通过删除重建方式重置序列值得简单方式。

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

       一般来讲,序列在实际开发过程中是经常用到的一种对象,通过它来生成主键是非常方便的,但是有些时候我们需要将其重新置零,通常采用的方式就是删除后重新创建。

      下面我们来看一下另外一种方式:

SQL>createsequenceseq_1incrementby1startwith1maxvalue999999999;

序列已创建。SQL>createorreplaceprocedureseq_reset(v_seqnamevarchar2)as 2 nnumber(10); 3 tsqlvarchar2(100); 4 begin 5 executeimmediate'select'||v_seqname||'.nextvalfromdual'inton; 6 n:=-(n-1); 7 tsql:='altersequence'||v_seqname||'incrementby'||n; 8 executeimmediatetsql; 9 executeimmediate'select'||v_seqname||'.nextvalfromdual'inton; 10 tsql:='altersequence'||v_seqname||'incrementby1'; 11 executeimmediatetsql; 12 endseq_reset; 13 /

过程已创建。

SQL>selectseq_1.nextvalfromdual;

 NEXTVAL---------       2

SQL>/

 NEXTVAL---------       3

SQL>/

 NEXTVAL---------       4

SQL>/

 NEXTVAL---------       5

SQL>execseq_reset('seq_1');

PL/SQL过程已成功完成。

SQL>selectseq_1.currvalfromdual;

 CURRVAL---------       1

SQL>

这样可以通过随时调用此过程,来达到序列重置的目的。

此存储过程写的比较仓促,还可以进一步完善,在此就不再进一步讲述。
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
文章标签: tsql 存储 sql
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭