国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

在數據庫中自動生成編號的實現方法分享

2024-08-31 00:57:58
字體:
來源:轉載
供稿:網友
在使用數據庫的時候,難免要在使用過程中進行刪除的操作,如果是使用int類型的字段,令其自增長,這是個最簡單的辦法,但是后果會有些不是你想要的!看下這個Demo:

  1.建立這樣的簡單的表Test.

  

  2.設置字段id的自增.

     

  3.表添加數據

  insert into Test(name) values('TestName')

  insert into Test(name) values('TestName')

  insert into Test(name) values('TestName')

  4.你會看到

  

在數據庫中自動生成編號的實現方法分享

  5.在這里我們刪除id為2的行.就只剩下了id為1和id為3的兩行數據了.(不上圖了)

  6.再添加一條數據.

  insert into Test(name) values('TestName')

  我們會發現這或許不是我們想要的結果了

  

  為什么沒有id為2的呢?    之后任你死命的加,也不會有id為2的數據行了!

這樣的設計固然方便,但是魔鬼在于細節,這篇博客就是為了解決這個問題讓我們重新見到id為2的數據行(這里順便改進一下,讓結果不只是顯示id為2這樣的int,假如有一天我們的各戶要求我們他們要一個5位數的id號嗎,從00000開始,OK,這沒問題)

1.主角登場,存儲過程終于派上了用場了

復制代碼 代碼如下:


Create procedure [dbo].[insertName]
(@name nvarchar(50))
as
begin
declare @i int
set @i=1
while(@i<10000)
begin
if exists(select convert(int,id) from numbertest where convert(int,id)=@i)
begin
set @i=@i+1
continue
end
else
begin
insert numbertest values(right('0000'+convert(varchar(5),@i),5),@name)--這里的兩個數字'5' 就是我們要設置的id長度                      
break
end
end
end


2.用SQL 語句調用這個存儲過程

  execute insertName Test

  你可以狂按幾次,幾十次,幾百次,我們要的數據加進去了,

  

在數據庫中自動生成編號的實現方法分享

  我們可以刪除指定的id數據行,當我們再次進行添加的時候,之前被刪掉的id行,將會被我們新添加的數據所覆蓋,這樣id就都可以連接起來了.

  哦,對了,還沒有說如何顯示的是 '0' 開頭的呢?這個簡單,將id的數據類型設置為nvarchar(5),就是這么簡單!呵呵!  
總結:
  這里我們調用了存儲過程,存儲過程不宜多用,但是有的時候還真是用起來很方便,本文章對于剛剛工作的童鞋們應該還是有點幫助的吧,好好學習吧,生活很美好!
  如釋重負的感覺啊,終于搞定一個問題,在這里感謝幫助我的童鞋們! 下次再會!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 易门县| 曲周县| 乌兰县| 夹江县| 永丰县| 桂阳县| 云阳县| 富蕴县| 资溪县| 吉水县| 四平市| 香河县| 鹤壁市| 桓台县| 山阳县| 松潘县| 孝义市| 酒泉市| 兴宁市| 宝鸡市| 双牌县| 年辖:市辖区| 莱阳市| 姚安县| 平谷区| 津市市| 浪卡子县| 张家口市| 巴林右旗| 玛纳斯县| 新化县| 肇东市| 塘沽区| 柳州市| 凉城县| 武隆县| 沅陵县| 兖州市| 阳西县| 栾川县| 涪陵区|