恐怕不行,必須通過SQL腳本刪除一列然後增加一列的。ALTER
TABLE
news
DROP
COLUMN
ID
ALTER
TABLE
news
ADD
ID
INT
IDENTITY(1,1)
B. sql sever中如何將一列修改為自增長列
原來有個表news,id是主鍵,但不是非主鍵,現在需要將其修改為主鍵,方法如下: 對原有的id列是無法直接將其修改為主鍵的,必須間接地來實現,具體如下: 首先增加一個新列並定義為自增長列alter table news add id1 int Identity(1,1) not null 然後再資源管理器中右擊news表,選擇修改,將id列刪除,並將id1修改為id即可,當然這個過程也可以通過sql語句來實現
C. 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。
(3)sql更新自增擴展閱讀
sql語句建表規則如下:
create table 『表名』 (『欄位1』 type1 [not null] [primary key] identity(起始值,遞增量),『欄位2』type2 [not null], ...)--primary key為主鍵 identity表示遞增數量。
D. sql更新語句 自增
sql更新語句 自增
自增列不能修改,只能刪除或者添加 所以對應的就只能先刪除該列,然後再添加列,添加時賦值屬性為標識列 創建新列後會自動填充數字
E. 在SQL中要怎樣設置自增列
2005?打開SQL Server Management Studio,打開資料庫之後,在選中的表上點「修改」,在選中需要設置為自增的欄位,在右下方的表設計器里選擇「標識規范」,(如下圖:)選「是」,就設定好了。
F. SQL自動增長列數據變動刷新的問題
這樣是有點麻煩,不知道你的那張表是否還有其他的唯一標識符的欄位,如果沒有,可以嘗試觸發器或者其他方式,如果有的話可以這樣做,不需要在表中添加一個int列,假設編號是num,從10001開始,另一個唯一標識符為keyid如下:
取出來的時候:
select row_number() over(order by 排序欄位)+10000 num , * from tablename
這樣取出來的時候都是從10001開始的,還可以自定義排序,
刪除的時候
(
selectkeyidfrom(
selectrow_number()over(orderby排序欄位)+10000num,*
fromtablename
)t
wherenum=10002
)
這樣就刪除了10002對應的記錄,而且下次取的時候,序號仍然是連續的,如果按照你那種方法,數據量小還好,如果數據量很大,每刪除一條編號靠前的數據,就需要更新大量的數據,性能方面影響很大。
G. sql 修改某列 為自增欄位
自增列不能直接修改,必須將原有id列刪除,然後重新添加一列具有identity屬性的id欄位。比如你要修改的欄位名為id:
alter
table
表名
drop
column
id
alter
table
表名
add
id
int
identity(1,1)
H. sql的自增列如何重置
--操作的過程中,注意一點,標識列自增是不能修改的,那麼首先
--去除該列自增的標識,然後再修改id,成功修改後,再加上標識
--r如果不修改標識,會報錯:「無法更新標識列」
create table #a
(ids int,
names varchar(100)
)
--插入測試數據,序號從100開始的,表示你當前表的情況
declare @a int
set @a=100
while @a<200
begin
insert #a(ids)
select @a
set @a=@a+1
end
--假定還有一個#b表也引用了該序號
--插入測試數據到#b
select ids n_id,names ff into #b from #a
--好,現在開始處理序號問題了,用臨時表#tmp過渡
--這里用了一個標識列,請注意!
--將帶一個新的序列的數據插入到表#tmp中
select identity(int,1,1) flag, * into #tmp from #a
--看看結果是不是有了新的序列了,呵
select * from #tmp
--那麼現在就利用#tmp表來更新所有用到該序列的表
--更新#a
update #a set ids=flag from #a a,#tmp b where a.ids=b.ids
--更新其他表引用了該序列的,比如#b
update #b set n_id=flag from #b a,#tmp b where a.n_id=b.ids
I. sqlserver將某欄位更新成自增型的sql語句
自增列不能修改,只能刪除或者添加
所以對應的就只能先刪除該列,然後再添加列,添加時賦值屬性為標識列
創建新列後會自動填充數字