有在使用 MS SQL server 的朋友,如果有需要找到 identity 跳號的資料,可以參考一下新的寫法,查詢成本省很大。
#長知識
【SQL Tips】之【了解為何identity會發生不連續號碼與快速找出那些號碼是跳號】20171224
**identity保證唯一,不保證連續**
**使用SARG規則與SET BASED方式找出不連續號碼**
**最後那三種找出不連續的技巧,成本比如下
50%(SELF JOIN搭配NOT IN) : 32%(SELF JOIN搭配 OFFSET 函數) : 18%(LAG 函數) **
許多SQL Server開發人員經常會使用identity自動產生連續編號,然而該identity卻有一個特質是發生交易退回(rollback)則會產生跳號的狀況,以下的狀況就是identity碰到交易退回後所產生的跳號情況。
***
use tempdb
go
if object_id('tblNum') is not null
drop table tblNum
go
create table tblNum
(c1 int identity ,
c2 nvarchar(30) unique --防止重複
)
go
insert into tblNum(c2) values ('lewis1')
insert into tblNum(c2) values ('lewis2')
insert into tblNum(c2) values ('lewis3')
insert into tblNum(c2) values ('lewis3') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis5')
insert into tblNum(c2) values ('lewis5') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis5') --重複姓名就發生跳號
insert into tblNum(c2) values ('lewis8')
insert into tblNum(c2) values ('lewis9')
insert into tblNum(c2) values ('lewis10')
go
select * from tblNum
GO
--結果
c1 c2
1 lewis1
2 lewis2
3 lewis3
5 lewis5 <--發生跳號
8 lewis8 <--發生跳號
9 lewis9
10 lewis10
***
基本上單一執行INSERT UPDATE DELETE 就是一種隱性交易,上述的範例就是因為條件約束(constraint)的unique緣故,當輸入的文字發生重複的時候,就會自動退回交易,緊接著identity也隨之發生跳號的狀況。
當瞭解identity會有發生跳號的特質之後,接下來分享三種從SQL Server 2005開始使用的抓取跳號的範例,以及從SQL Server 2012開始支援的Windows Offset函數抓取跳號的技巧。這三種技巧都是使用set-based的方式,不使用WHILE迴圈去比對資料的連續性,值得一試。
**從SQL Server 2005支援的抓取跳號的技巧
--使用自我查詢產生搭配CTE
--使用SET BASED技巧取代迴圈處理
WITH DS AS (
SELECT DS1.* FROM tblNum as DS1 JOIN
tblNum as DS2
on DS1.c1 = DS2.c1+1 )
SELECT * FROM tblNum
WHERE c1 NOT IN (SELECT TOP(1) c1 FROM tblNum ORDER BY c1)
EXCEPT
SELECT * FROM DS
GO
**從SQL Server 2012支援的抓取跳號的技巧
--使用自我查詢產生搭配OFFSET
--使用SET BASED技巧取代迴圈處理
WITH DS AS (
SELECT DS1.* FROM tblNum as DS1 JOIN
tblNum as DS2
on DS1.c1 = DS2.c1+1 ),
DS2 AS (SELECT * FROM tblNum ORDER BY 1 OFFSET 1 ROW )
SELECT * FROM DS2
EXCEPT
SELECT * FROM DS
GO
**從SQL Server 2012支援的抓取跳號的技巧
--使用自我查詢產生搭配LAG的Windows Offset技巧
--使用SET BASED技巧取代迴圈處理
WITH DIFF AS (
select *,LAG(c1, 1,0) OVER ( ORDER BY c1) as previous
,c1 - LAG(c1, 1,0) OVER ( ORDER BY c1) as diff
from tblNum
)
SELECT c1,c2 FROM DIFF WHERE diff>1
GO
--結果就是 5/8 之前就發生跳號
c1 c2
5 lewis5
8 lewis8
最後那三種找出不連續的技巧,成本比如下
50%(SELF JOIN搭配NOT IN) : 32%(SELF JOIN搭配 OFFSET) : 18%(LAG)
同時也有76部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,從EXCEL函數到VBA雲端自動化(2014)第11次上課 上課內容: 01_問題_如何利用VLOOKUP抓取編號資料(人事考評) 02_解答1_用MID與VLOOKUP函數取得資料 03_解答2_VLOOKUP函數取得資料 04_解答3_多選工作表處理 05_問題_如何利用VLOOKUP產生編號...
sql自動編號 在 吳老師教學部落格 Youtube 的評價
從EXCEL函數到VBA雲端自動化(2014)第11次上課
上課內容:
01_問題_如何利用VLOOKUP抓取編號資料(人事考評)
02_解答1_用MID與VLOOKUP函數取得資料
03_解答2_VLOOKUP函數取得資料
04_解答3_多選工作表處理
05_問題_如何利用VLOOKUP產生編號
06_解答_利用VLOOKUP產生編號
07_解答_利用VLOOKUP產生編號
08_解答_同學問題
教學影音(完整版在論壇):
http://www.youtube.com/playlist?list=PLgzs-Q3byiYOINKddpTxco8f-IvgNc6rf
論壇(請上課學員自行申請加入,不對外開放):
https://groups.google.com/forum/?hl=zh-TW#!forum/scu_excel_vba_83
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說?建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
1.常用函數
2.進階函數應用
3.從函數到VBA設計
4.如何自訂函數
5.VBA程式設計入門
6.如何錄製巨集與修改
7.如何將大量資料轉存到資料庫
8.如何讀取資料庫資料
詳細目錄:http://goo.gl/eQptxx
有講義與範例和完成的畫面公式與程式碼,
只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,
優點:
1.可非線性學習:可按照自己最不熟的部分多次學習。
2.可反覆學習:有疑問可以多次聽講,保證學的會。
3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。
上課參考用書:
超圖解 Excel VBA 基礎講座
作者: 亮亨/譯 出版社:旗標
出版日期:2006/05/15 定價:420元
日本Amazon網站同類書籍銷售No.1
課程特色:
1.如何將函數轉成VBA
2.VBA與資料庫快速結合
EXCEL函數、 VBA與資料庫是分別屬於三個領域的知識,
但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,
剛好我有近20年的VB程式設計與資料庫設計的經驗,
教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,
ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,
覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,
就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2014/2/27
EXCEL VBA 函數東吳進修推廣部 EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel excel vba教學視頻 excel函數教學 excel函數說明 excel函數應用
課程特色:
1.如何將函數轉成VBA
2.VBA與資料庫快速結合
EXCEL函數、 VBA與資料庫是分別屬於三個領域的知識,
但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不
容易,
剛好我有近20年的VB程式設計與資料庫設計的經驗,
教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大
家,
ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,
覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪
除等功能,
就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!
上課用書是:
Excel函數&VBA其實很簡單
(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)
Excel VBA 與資料庫整合大活用
(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)
完整教學影音DVD申請:http://goo.gl/ZlBZE
論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW
相關教學連結:
1.EXCEL VBA設計(自強基金會2012)第4次上課
http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html
2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課
http://terry55wu.blogspot.tw/2012/04/excel-vba.html
3.自強基金會2012第8次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html
4.自強基金會2012第9次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html
5.EXCEL_VBA與資料庫--自強基金會2012(Ending)
http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html
EXCEL,VBA,函數,吳清輝老師,勞工大學,程式設計,線上教學,e化創新,雲端計算,虛擬電腦,吳老師提供
sql自動編號 在 吳老師教學部落格 Youtube 的評價
東吳EXCEL VBA辦公自動化第3次上課(81)
上課內容:
01_如何將大量工作表合併成單一工作表
02_合併成單一工作表程式說明
03_如何增加第一欄為月份名(VBA)
04_如何改成VBA語法說明05_如何將編號改為月份
06_如何將EXCEL資料匯入到資料庫
07_如何利用ADO做SQL查詢
08_如何利用ADO做SQL查詢並加上條件
09_如何利用ADO查詢所有月份資料
完整影音:
http://www.youtube.com/playlist?list=PLsE34duTsJQyhcHyoa3ivlri63kZRpGUs
教學影音完整論壇:
https://groups.google.com/forum/?hl=zh-TW#!forum/excel-vba_80
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
1.常用函數
2.進階函數應用
3.從函數到VBA設計
4.如何自訂函數
5.VBA程式設計入門
6.如何錄製巨集與修改
7.如何將大量資料轉存到資料庫
8.如何讀取資料庫資料
詳細目錄:http://goo.gl/eQptxx
有講義與範例和完成的畫面公式與程式碼,
只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,
優點:
1.可非線性學習:可按照自己最不熟的部分多次學習。
2.可反覆學習:有疑問可以多次聽講,保證學的會。
3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。
上課參考用書:
看!就是比你早下班-50個ExcelVBA高手問題解決法
作者:楊玉文 出版社:松崗
出版日期:2011年02月15日 定價:550元
課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手!2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2014/2/27
EXCEL,VBA,函數東吳進修推廣部,EXCEL,VBA,函數,程式設計,線上教學,excel,vba,教學,excel,vba指令教學,vba範例教學excel,,excel,vba教學視頻,excel函數教學,excel函數說明,excel函數應用
sql自動編號 在 吳老師教學部落格 Youtube 的評價
從EXCEL函數到VBA雲端自動化(2014)第11次上課
上課內容:
01_問題_如何利用VLOOKUP抓取編號資料(人事考評)
02_解答1_用MID與VLOOKUP函數取得資料
03_解答2_VLOOKUP函數取得資料
04_解答3_多選工作表處理
05_問題_如何利用VLOOKUP產生編號
06_解答_利用VLOOKUP產生編號
07_解答_利用VLOOKUP產生編號
08_解答_同學問題
教學影音(完整版在論壇):
http://www.youtube.com/playlist?list=PLgzs-Q3byiYOINKddpTxco8f-IvgNc6rf
論壇(請上課學員自行申請加入,不對外開放):
https://groups.google.com/forum/?hl=zh-TW#!forum/scu_excel_vba_83
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說?建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
1.常用函數
2.進階函數應用
3.從函數到VBA設計
4.如何自訂函數
5.VBA程式設計入門
6.如何錄製巨集與修改
7.如何將大量資料轉存到資料庫
8.如何讀取資料庫資料
詳細目錄:http://goo.gl/eQptxx
有講義與範例和完成的畫面公式與程式碼,
只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,
優點:
1.可非線性學習:可按照自己最不熟的部分多次學習。
2.可反覆學習:有疑問可以多次聽講,保證學的會。
3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。
上課參考用書:
超圖解 Excel VBA 基礎講座
作者: 亮亨/譯 出版社:旗標
出版日期:2006/05/15 定價:420元
日本Amazon網站同類書籍銷售No.1
課程特色:
1.如何將函數轉成VBA
2.VBA與資料庫快速結合
EXCEL函數、 VBA與資料庫是分別屬於三個領域的知識,
但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,
剛好我有近20年的VB程式設計與資料庫設計的經驗,
教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,
ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,
覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,
就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2014/2/27
EXCEL VBA 函數東吳進修推廣部 EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel excel vba教學視頻 excel函數教學 excel函數說明 excel函數應用
課程特色:
1.如何將函數轉成VBA
2.VBA與資料庫快速結合
EXCEL函數、 VBA與資料庫是分別屬於三個領域的知識,
但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不
容易,
剛好我有近20年的VB程式設計與資料庫設計的經驗,
教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大
家,
ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,
覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪
除等功能,
就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!
上課用書是:
Excel函數&VBA其實很簡單
(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)
Excel VBA 與資料庫整合大活用
(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)
完整教學影音DVD申請:http://goo.gl/ZlBZE
論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW
相關教學連結:
1.EXCEL VBA設計(自強基金會2012)第4次上課
http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html
2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課
http://terry55wu.blogspot.tw/2012/04/excel-vba.html
3.自強基金會2012第8次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html
4.自強基金會2012第9次上課
http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html
5.EXCEL_VBA與資料庫--自強基金會2012(Ending)
http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html
EXCEL,VBA,函數,吳清輝老師,勞工大學,程式設計,線上教學,e化創新,雲端計算,虛擬電腦,吳老師提供
sql自動編號 在 [SQL ] phpMyAdmin 自動編號如何歸零- 看板Database 的八卦
[SQL ] phpMyAdmin 自動編號如何歸零 ... 今天才發現說自己的資料突然間沒辦法新增原本資料編號還在十位數而已1 2 3 .... 15 突然多了一筆4294967295 刪除再加也 ... ... <看更多>
sql自動編號 在 [SQL ] [SQLite] 如何自動編號- 看板Database - 批踢踢實業坊 的八卦
我是使用SQLite,用的是sqlitejdbc-v056.jar
A Text
B Integer IDENTITY(1,1)
C Timestamp
Primary Key (A , B)
以上是我目前的Schema,我想讓B欄可以自動編號
這樣子可以達到嗎?但Insert value時怎麼輸入?
因為是自動編號,所以就只輸入AC兩欄
但是結果B欄就沒值
如果隨便一個固定數值給它,就會出現不唯一
因為我主要的主鍵是A欄,B欄只是在其它table當外鍵時
可以減少資料size
我試過只讓B欄當主鍵,B欄的設定如:
B Integer Primary key
這樣子可以成功自動編號
但是有辦法只讓A欄當主鍵,或AB兩欄當主鍵嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.144.102
... <看更多>