⑴ 如何用sql創建自增列
SQL SERVER?
identity屬性
create table tablename
(
id int identity,
c varchar(10)
)
id就是自增列。
已經創建的表無法直接把某欄位設置為自增,只能把原來的欄位刪除,之後再添加具有自增屬性的列。
步驟如下
--刪除列
alter table a
drop column list
--添加具有identity屬性的列
alter table a
add list int identity
⑵ 如何用sql語言創建自動增長的列
CREATE
TABLE
[表名]
(
[AUTOID]
[int]
IDENTITY
(1,
1)
NOT
NULL
,
[列名]
[varchar]
(50)
COLLATE
Chinese_PRC_CI_AS
NULL
)
ON
[PRIMARY]
GO
能看明白嗎?[AUTOID]
[int]
IDENTITY
(1,
1)
NOT
NULL
就是自動增長的欄位,自動加1.
⑶ plsql中如何將一張表的一列修改為自增的數列
oracle沒有ORACLE自增欄位這樣的功能,但是通過觸發器(trigger)和序列(sequence)可以實現。
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel varchar2(30),
address varchar2(30),
zip_code varchar2(10),
is_leaf char(1) default 'y' check (is_leaf in('y','n')),
is_client char(1) default 'n' check (is_client in('y','n')
));
假設關鍵欄位為id,建一個序列,代碼為:
create sequence seq_t_client_id
minvalue 1
maxvalue 99999999
start with 1
increment by 1
nocache
order;
建解發器代碼為:
CREATE OR REPLACE TRIGGER trg_t_client_id
BEFORE INSERT ON t_client
FOR EACH ROW
BEGIN
SELECT seq_t_client_id.nextval INTO :new.id FROM al;
END;
/
⑷ sql資料庫如何設置兩個自增列或者實現等同的效果
首先,一個表只允許有一個自增列,所以你這個要用觸發器來完成第二個欄位的自增
測試表
CREATETABLEtb(
idintIDENTITY(1,1)NOTNULL,
SysCodeint,
namevarchar(10))
創建觸發器
createtriggert_tb
ontbforinsert
as
declare@SysCodeint
declare@idint
select@id=idfrominserted
updatetbsetSysCode=1000+@idwhereid=@id
測試代碼
insertintotb(name)values('aa')
結果截圖
⑸ sql select 如何定義自增列
今天在項目中遇到一個問題,想在存儲過程中將查詢出來的數據放到一個臨時表中,不想create table(這人懶 drop table #temp SELECT id = IDENTITY(int,1,1),* INTO #TEMP FROM myTable select * from #temp 說明:id = IDENTITY(int,1,1),這句建立自增列的。其他的也不用多說了!^_^參考資料:SQL Server中,經常會用到Identity標識列,這種自增長的欄位操作起來的確是比較方便。但它有時還會帶來一些麻煩。 示例一:當表中被刪除了某些數據的時候,自增長列的編號就不再是一個連線的數列。這種時候我們可以用以下方案來解決。 SET IDENTITY_INSERT [TABLE] [ON|OFF] 允許將顯式值插入表的標識列中,當設置為ON時,這時可能在INSERT操作時手工指定插入到標識列中的編號,同時必須在操作完成後,將 IDENTITY_INSERT還原成OFF ,否則下次插入的時候必須指定編號,那不然就無法完成INSERT操作。 示例二:當表中的記錄被全部刪除,但此時標識列的值越來越大的時候,如果不加以重置,它還會無休止的增長。這個時候我們就要用到: DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1]) 將把指定表的種子值強制重設為1 。然而,你可能不想將種子重設為1 ,在這種情況下,你可以用你想用的種子值替代第三個參數。有時候你可能想知道當前的種子,而不是想重設種子, 這時你就要用到NORESEED ,而不用再去顧忌第三個參數。
⑹ sql中,怎樣在自增數列前面加上時間
alter table 表 add 列 int IDENTITY(1,1) NOT NULL 表指的是你要處理的那個表名稱;列指你要添加的列名稱;以上示例添加了一個數據類型為int型的列,自增序列號從1開始,每行增加量為1. 希望對你有所幫助!
⑺ 求教在sqlserver2008中的表中怎麼添加一列自增的列
1、例如給某表添加一個Num自增列,這張表已經有很多行數據了,通過sqlserver表設計器,添加一個新欄位Num,如圖所示,
⑻ SQL裡面如何插入自動增長序列號欄位
CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標記) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 NOCYCLE NOCACHE;
其中最大的值按欄位的長度來定,比如定義的自動增長的序列NUMBER(6) , 最大值為999999
INSERT 語句插入這個欄位值為: 序列號的名稱.NEXTVAL
例子: SQL insert into s_dept(id, name, region_id) values (s_dept_id.nextval, ‘finance’, 2);
1 row created.
⑼ sql server中如何實現自增欄位
1、主鍵自增,以及建表的語句如下:
CREATE TABLEIF NOT EXISTS `t_email_notice` (
`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,`send_time` INT (16) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中 `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,這句話表示設置id欄位字增,類型為int
2、varchar類型的主鍵,不會自增。但是你可以通過創建觸發器的形式,來實現自增。代碼如下:
CREATE TRIGGER `T` BEFORE INSERT ON `user`FOR EACH ROW begin
set new.id=concat('SH',lpad(((SELECT substring(id,3,4) from user where id=(select id from user order by id desc limit 1))+1),4,0));
end;
這段語句的意思是,當user表中新插入一條一條語句,會觸發『觸發器T』將以』SH『開頭的id欄位自增+1。
(9)sql自增數列擴展閱讀
sql語句建表規則如下:
create table 『表名』 (『欄位1』 type1 [not null] [primary key] identity(起始值,遞增量),『欄位2』type2 [not null], ...)--primary key為主鍵 identity表示遞增數量。