sqlserver自動編號
❶ 如何讓SELECT 查詢結果額外增加自動遞增序號sqlserver
如何讓SELECT 查詢結果額外增加自動遞增序號
如果數據表本身並不內含自動遞增編號的欄位時,要怎麼做才能夠讓SELECT查詢結果額外增加自動遞增序號呢?下列五種方法供您參考:
USE test;
GO
/* 方法一*/
SELECT 序號= (SELECT COUNT(客戶編號) FROM 客戶 AS LiMing WHERE LiMing.客戶編號<= Chang.客戶編號), 客戶編號,公司名稱 FROM 客戶 AS Chang ORDER BY 1;
GO
/* 方法二: 使用SQL Server 2005 獨有的RANK() OVER () 語法*/
SELECT RANK() OVER (ORDER BY 客戶編號 DESC) AS 序號, 客戶編號,公司名稱FROM客戶;
GO
/* 方法三*/
SELECT 序號= COUNT(*), LiMing.客戶編號, LiMing.公司名稱 FROM 客戶
AS LiMing, 客戶 AS Chang WHERE LiMing.客戶編號>= Chang.客戶編號 GROUP BY
LiMing.客戶編號, LiMing.公司名稱 ORDER BY 序號;
GO
/* 方法四建立一個「自動編號」的欄位,然後將數據新增至一個區域性暫存數據表,然後由該區域性暫存數據表中,將數據選取出來,最後刪除該區域性暫存數據表*/
SELECT 序號= IDENTITY(INT,1,1),管道,程序語言,講師,資歷 INTO #LiMing FROM 問券調查一;
GO
SELECT * FROM #LiMing;
GO
DROP TABLE #LiMing;
GO
/*方法五使用 SQL Server 2005 獨有的ROW_NUMBER() OVER () 語法搭配 CTE (一般數據表表達式,就是 WITH 那段語法)選取序號2 ~ 4 的數據*/
WITH
排序後的圖書 AS (SELECT ROW_NUMBER() OVER (ORDER BY 客戶編號 DESC) AS 序號,
客戶編號,公司名稱 FROM 客戶) SELECT * FROM 排序後的圖書 WHERE 序號 BETWEEN 2 AND 4;
GO
❷ sqlserver怎麼給已有表的已有欄位添加自動編號
直接添加就可以了,用設計器或者語句,前面的所有的列都會添加上編號
--添加C列從100開始自增每次+1
(100,1)notnull
需要注意的是,如果表沒有主鍵,則會按照堆的順序來進行編號,如果有主鍵則會按照主鍵的順序來進行編號。建議對堆表先建立PK後再添加自增列,避免後期自增的順序不一致
❸ Sqlserver 資料庫自動編號主鍵怎麼設計
這種字元型的需要自動增長的主鍵是不能直接設置的,你可以通過結合代碼來實現:
設置ADMMA表PID欄位為主鍵,int類型,自動增長;MA00001這些數據存在另一個固定長度的字元串欄位RealID中。
插入數據時先插入一條獲取到PID,根據PID用正則表達式生成RealID,再更新該條數據的RealID值。
還有一種方式可以嘗試,我不太確定能不能直接用,就是RealID做成計算列,該列的值直接通過PID換算得來。
❹ sql server 2008怎麼自動編號
注意:只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。
一。通過SQL管理工具修改列的標識屬性
1.在對象資源管理器中,右鍵單擊要更改其數據類型的列所在的表,再單擊「修改」。此時,將在表設計器中打開該表。
2.清除要更改的列的「允許空」復選框。
3.在「列屬性」選項卡中,展開「標識規范」屬性。
4.單擊「是標識」子屬性的網格單元格,然後從下拉列表中選擇「是」。
5.在「標識種子」單元格中鍵入值。此值將賦給表中的第一行。默認情況下將賦值 1。
6.在「標識增量」單元格中鍵入值。此值是基於「標識種子」依次為每個後續行增加的增量。默認情況下將賦值 1。
二。SQL語句來創建
創建表時指定自動編號的欄位
CREATE TABLE [dbo].[UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL, --此處可指定開始值及每次增長步長
[UserName] [nchar](10) NOT NULL, )
❺ sqlserver表A的id是自動編號,如果一次插入A和B表,在B表中需引用這個插入A的id怎麼辦好煩啊這種問題。
其實在大型系統里,沒有這樣做的。
一般都有個統一的編號,此唯一編號為ID
A B
id number name id number 其他
看到了沒有,不是與什麼對應A的id
而是一個number 把二表相連了
❻ Sqlserver 資料庫自動編號主鍵怎麼設計
1.
首先刪除主鍵,
然後重新創建主鍵,
重新創建主鍵的時候,
需要說明本主鍵是使用
非聚集索引
primary
key
nonclustered
(
sno
)
2.
a:
pad_index
=
{
on
|
off
}
指定索引填充。默認值為
off。
on
fillfactor
指定的可用空間百分比應用於索引的中間級頁。
off
或不指定
fillfactor
考慮到中間級頁上的鍵集,將中間級頁填充到接近其容量的程度,以留出足夠的空間,使之至少能夠容納索引的最大的一行。
b:
fillfactor
=fillfactor
指定一個百分比,指示在創建或重新生成索引期間,資料庫引擎對各索引頁的葉級填充的程度。fillfactor
必須為介於
1
至
100
之間的整數值。默認值為
0。如果
fillfactor
為
100
或
0,則資料庫引擎將創建完全填充葉級頁的索引。
c:
ignore_p_key
=
{
on
|
off
}
指定在插入操作嘗試向唯一索引插入重復鍵值時的錯誤響應。ignore_p_key
選項僅適用於創建或重新生成索引後發生的插入操作。當執行
create
index、alter
index
或
update
時,該選項無效。默認值為
off。
on
向唯一索引插入重復鍵值時將出現警告消息。只有違反唯一性約束的行才會失敗。
off
向唯一索引插入重復鍵值時將出現錯誤消息。整個
insert
操作將被回滾。
d:
statistics_norecompute
=
{
on
|
off}
指定是否重新計算分發統計信息。默認值為
off。
on
不會自動重新計算過時的統計信息。
off
啟用統計信息自動更新功能。
若要恢復統計信息自動更新,請將
statistics_norecompute
設置為
off,或執行
update
statistics
但不包含
norecompute
子句。
e:
on
[primary]
是指
索引創建在
primary
這個文件組上。
3、
以全國的身份證為例子:
對於
身份證號碼,
有個
「唯一」
的索引
而對於
姓名,
有個
「不唯一」
的索引。
「不唯一」
的索引
,
雖然不能定位到唯一的某一行,
但是可以縮小范圍。定位到某些行。
4.
聚集索引
clustered
創建索引時,鍵值的邏輯順序決定表中對應行的物理順序。聚集索引的底層(或稱葉級別)包含該表的實際數據行。一個表或視圖只允許同時有一個聚集索引。
❼ sqlserver批量插入多條數據怎麼返回自增編號
SELECTIDENT_CURRENT('TableName')--返回當前的最後自動編號SELECTIDENT_INCR('TableName')--返回增量值SELECTIDENT_SEED('TableName')--返回種子值返回下一個自動編號:SELECTIDENT_CURRENT('TableName')+(SELECTIDENT_INCR('TableName'))--創建資料庫和表(idintidentity(1,1),namevarchar(20))--執行這個SQL,就能查出來剛插入記錄對應的自增列的值insertintomytablevalues('李四')select@@identitydeclare@new_idintinsertintotest_idvalues('haha')