當前位置:首頁 » 編程語言 » sql自動編碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql自動編碼

發布時間: 2022-05-22 20:20:43

sql 自定義的自動編號求助

查詢時加序號
a:沒有主鍵的情形:

Select identity(int,1,1) as iid,* into #tmp from TableName
Select * from #tmp
Drop table #tmp

b:有主鍵的情形:

Select (Select sum(1) from TableName where KeyField <= a.KeyField) as iid,* from TableName a

eg:
select (select sum(1) from user_Admin where id<=a.id) as ID,id,displayName from user_Admin a order by a.ID asc

結果:

------------------------------------------------------------

USE 北風貿易;
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

------------分頁使用---------------------------
SELECT RANK() OVER (ORDER BY id asc) AS no,* into #temp
FROM Bbs_reply select * from #temp where no between 1 and 100 drop table #temp

㈡ 關於SQL自動編號

在企業管理器中建表:
用企業管理器打開表後選擇修改欄位→把下面欄位屬性的【標識】選項選擇為【是】→如果需要定義【初始值(標識種子)】和【每次遞增值(標識遞增量)】的話定義一下就可以了
直接用sql建表
create
table
表名(
欄位名1
int
identity(1,1)
--這是從【一】開始每次自動加【一】的自動編號
欄位名2
int
identity(1,2)
--這是從【一】開始每次自動加【二】的自動編號
欄位名3
int
identity(2,2)
--這是從【二】開始每次自動加【二】的自動編號
)
---
以上,希望對你有所幫助。

㈢ SQL資料庫列自動生成編號

兩種方法:

1、用Truncate

TRUNCATETABLEname可以刪除表內所有值並重置標識值

2、用DBCC CHECKIDENT

DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,

但如果表內有數據,則重設的值如果小於最大值可能會有問題,這時可以用 dbcc checkident("bc_pos",reseed)即可自動重設值。

注意:

只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。

(3)sql自動編碼擴展閱讀:

關於上述標識列的引用

如果在SQL語句中引用標識列,可用關鍵字IDENTITYCOL代替,例如,若要查詢上例中ID等於1的行,

以下兩條查詢語句是等價的:

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

㈣ sql資料庫建表時如何實現自動編號

可以有兩種辦法啦:1.在企業管理器裡面建:這種方法很簡單點擊選中的資料庫右鍵新建即可相信你應該會不多說了。2.在查詢分析器里建:基本思路要建表,表是要在庫里建的所以你要先引用你要使用的資料庫加進來再開始建表,以下為一個簡單實例;create
database
student
--創建一個student資料庫由於這里主要說建表所以建一個簡單的資料庫use
student
--引用資料庫studentcreate
table
test(
--創建一個test表name
varchar(20)
primary
key
indentity(1,1),--列名(欄位名)
數據類型
在此加主鍵約束就不用加非空約束
再加上自動增長列(含義從1開始增長增長量是1)password
varchar(10)
not
null
--注意建表最後一個欄位名時結尾不要加逗號否則會出錯)

㈤ sql資料庫的主鍵自動編號怎麼弄的啊

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
創建索引時,鍵值的邏輯順序決定表中對應行的物理順序。聚集索引的底層(或稱葉級別)包含該表的實際數據行。一個表或視圖只允許同時有一個聚集索引。

㈥ sql server根據不同類型自動編號

這種要使用存儲過程實現,不容的產品類型,查出當前最大,然後加1後format就可以了。

㈦ SQL的主鍵如何自動編號

1:查詢分析器操作
ALTER TABLE 123
ADD
CONSTRAINT PK_BH
PRIMARY KEY 編號
2:企業管理器
右鍵單擊表123--選擇'設計表'--打開表設計器--選中'編號'右鍵單擊--'設置主鍵'
會在編號上顯示一把鑰匙
設置成功

"設置主鍵 "後選中"數據類型"把它的"標識"值設置為'是',你可以自己定義'種子'和'增量'
種子=初始值
增量=每一條記錄增加的數值,
如種子設置為1,增量也是1,那麼記錄1=1 記錄2=2
如種子設置為4,增量也是2,那麼記錄1=4,記錄2=6

㈧ 如何在SQL中設置自動編號

  1. 在資料庫管理系統中(sql server)中,使用設計表,把標識改成'是'

  2. 通過語句

    create table aaa

    (id int IDENTITY(1,1) not null,

    a char(10)

    )

㈨ sql里用觸發器實現自動編號

不需要用觸發器,為欄位設置屬性就可以實現,不知道你所說的sql是不是指MS SqlServer,是的話,給欄位設置為bigint類型,然後把它的「標識列」屬性設置為真就可以了。

access的話,直接類型選為「自動編號」就可以了。
-----------------------------

那麼你可以這樣,比如:
表名為tab,你想要的列為bm(字元型),希望的格式是[A*******]。
那麼給它加一個標識列id做為主鍵,再建立下面的觸發器

CREATE TRIGGER [tab_tri1] ON [tab]
FOR INSERT
AS
update [tab] set [bm]='A'+right('0000000'+cast([id] as varchar(10)),7) where id in (select id from inserted)

注意:你的bm列要設置為可以為空。

這樣,列[bm]就會依你想實現的格式自增長了。

㈩ SQl資料庫自動編號(連續)

假如你的原來的表tb有
id,name,address三列
其中id是自動增長列,
刪除其中若干行以後,
你可以這樣啊
創建存儲過程
create proc getTempTable
as
begin
declare @temp table
(
id int identity(1,1),
name varchar(20),
address varchar(20)
)
insert @temp
select name, address from tb

select * from @temp
end
這樣你就可以得到一個ID連續的新表了