Ⅰ 如何通過sql語句為某個已有欄位添加自增屬性
mysql>;
QueryOK,1rowaffected(0.23sec)
Records:1Duplicates:0Warnings:0
mysql>showcreatetablett;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|Table|CreateTable
|
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
|tt|CREATETABLE`tt`(
`id`int(11)NOTNULLDEFAULT'0',
`Field1`varchar(255)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8|
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
1rowinset(0.02sec)
mysql>_increment;
QueryOK,1rowaffected(0.20sec)
Records:1Duplicates:0Warnings:0
mysql>select*fromtt;
+----+--------+
|id|Field1|
+----+--------+
|1|中國人|
+----+--------+
Ⅱ 在SQL中怎樣自動生成一個欄位並欄位值自動增加!!
用觸發器,每次添加紀錄的時候觸發,查詢整個表格,找出最大值+1,變成這個欄位的值。呵呵,浪費時間!
用GUID的類型作為主鍵就不會重復了,默認值用newid(),這樣也不好啊!主鍵的值是默認值提供的話,你的程序必須要刷新以後才能繼續修改這個紀錄。我一般的做法,在程序中用coCreateGUID生成一個GUID填寫進去,然後post這個新紀錄,不讓SQL Server的默認值發揮作用,這樣不用刷新就可以繼續修改這個新紀錄。要知道刷新會很慢的!
Ⅲ 如何在sql server創建表的時候設置自動增加欄位
這個你可以在觸發器裡面實現!在設計階段是無能為力的,你要控制的是非自增欄位,而自增欄位必須是唯一的,所以不是你理解的那樣的自增欄位。
你需要在插入PID,Y欄位時候查詢PID=1的最大個數,然後再更新到X欄位即可;
你先熟悉下觸發器的用法,然後理清思路,在inserted之後,更新
X=select
count
from
表
where
PID=Inserted.PID
Ⅳ 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。
(4)sql欄位自加擴展閱讀
sql語句建表規則如下:
create table 『表名』 (『欄位1』 type1 [not null] [primary key] identity(起始值,遞增量),『欄位2』type2 [not null], ...)--primary key為主鍵 identity表示遞增數量。
Ⅳ sql server建表時怎麼設置ID欄位自增
建立一個叫testtable的表,2個欄位,第一欄位id,第二欄位name。
設置自增:IDENTITY(1,1)
,從1開始,每次自增1
CREATE
TABLE
testtable(
id
[int]
IDENTITY(1,1)
NOT
NULL,
name
[nvarchar](255)
NULL
)
ON
[PRIMARY]
Ⅵ 如何在Sql查詢語句中加上一個自增欄位
SqlServer中的自增的ID的最後的值:
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內的最後一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當前會話中任何作用域內的最後一個 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和會話的限制,而受限於指定的表。
IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。
一個作用域就是一個模塊——存儲過程、觸發器、函數或批處理。因此,如果兩個語句處於同一個存儲過程、函數或批處理中,則它們位於相同的作用域中。
SQL可以多個語句一起執行:
insert into ... ; SELECT SCOPE_IDENTITY() ;
二條一起執行,到時可獲取第二個SQL的值
Ⅶ SQL如何添加欄位
增加欄位: alter table [表名] add 欄位名 smallint default 0 增加數字欄位,整型,預設值為0。
alter table [表名] add 欄位名 int default 0 增加數字欄位,長整型,預設值為0。
alter table [表名] add 欄位名 single default 0 增加數字欄位,單精度型,預設值為0。
alter table [表名] add 欄位名 double default 0 增加數字欄位,雙精度型,預設值為0。
alter table [表名] add 欄位名 Tinyint default 0 增加數字欄位,位元組型,預設值為0。
alter table [表名] add 欄位名 text [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 memo [null] 增加備注型欄位,[null]可選參數。
alter table [表名] add 欄位名 varchar(N) [null] 增加變長文本型欄位大小為N(1~255)。
alter table [表名] add 欄位名 char [null] 增加定長文本型欄位大小固定為255。
(7)sql欄位自加擴展閱讀
全局變數
全局變數是sql server(WINDOWS平台上強大的資料庫平台)系統內部使用的變數,其作用范圍並不局限於某一程序,而是任何程序均可隨時調用全局變數通常存儲一些sql server(WINDOWS平台上強大的資料庫平台)的配置設定值和效能統計數據。
用戶可在程序中用全局變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。有關sql server(WINDOWS平台上強大的資料庫平台) 全局變數的詳細情況請參見附錄。
注意:全局變數不是由用戶的程序定義的,它們是在伺服器級定應義的。只能使用預先說明及定義的變局變數。引用全局變數時,必須以「@@」開頭。局部變數的名稱不能與全局變數的名稱相同、否則會在應用中出錯。
Ⅷ sql欄位自動加1問題
Select (Select max(A) From ta)+row_number() over(order by B) As A,B From tb
--A表的最大值+B表的記錄號(SQL2005或以上版本)
Ⅸ sql server建表時怎麼設置ID欄位自增
在用sql語言建表的時候,用sql語句將自增寫入代碼中。
語句創建
create table table
name(id int identity(1,1),
其他欄位
)
Ⅹ sqlserver2005 將欄位設置為自增
自增列不能直接修改,必須將原有ID列刪除,然後重新添加一列具有identity屬性的ID欄位。比如你要修改的欄位名為ID:
alter
table
表名
drop
column
ID
alter
table
表名
add
ID
int
identity(1,1)