自增列可以手動修改嗎

2021-07-11 19:11:23 字數 1689 閱讀 8797

自增列可以手動修改嗎?

當然可以了

set identity_insert

允許將顯式值插入表的標識列中。

語法set identity_insert [ database.[ owner.] ]  

引數database

是指定的表所駐留的資料庫名稱。

owner

是表所有者的名稱。

table

是含有標識列的表名。

注釋任何時候,會話中只有乙個表的 identity_insert 屬性可以設定為 on。如果某個表已將此屬性設定為 on,並且為另乙個表發出了 set identity_insert on 語句,則 microsoft® sql server™ 返回乙個錯誤資訊,指出 set identity_insert 已設定為 on 並報告此屬性已設定為 on 的表。

如果插入值大於表的當前標識值,則 sql server 自動將新插入值作為當前標識值使用。

set identity_insert 的設定是在執行或執行時設定,而不是在分析時設定。

許可權執行許可權預設授予 sysadmin 固定伺服器角色和 db_owner 及 db_ddladmin 固定資料庫角色以及物件所有者。

示例下例建立乙個含有標識列的表,並顯示如何使用 set identity_insert 設定填充由 delete 語句導致的標識值中的空隙。

-- create products table.

create table products (id int identity primary key, product varchar(40))

go-- inserting values into products table.

insert into products (product) values ('screwdriver')

insert into products (product) values ('hammer')

insert into products (product) values ('saw')

insert into products (product) values ('shovel')

go-- create a gap in the identity values.

delete products 

where product = 'saw'

goselect * 

from products

go-- attempt to insert an explicit id value of 3;

-- should return a warning.

insert into products (id, product) values(3, 'garden shovel')

go-- set identity_insert to on.

set identity_insert products on

go-- attempt to insert an explicit id value of 3

insert into products (id, product) values(3, 'garden shovel').

goselect * 

from products

go-- drop products table.

drop table products

go

如何 使用指令碼將某錶的自增列修改為非自增列?

建立測試表 create table t1 id int identity,a int go 插入記錄 insert t1 values 1 go 1.將identity 標識 列變為普通列 alter table t1 add id temp int go update t1 set id tem...

MySQL標識列(自增列設定,修改,刪除)

標識列 又稱之為自增長列 含義 可以不用手動的插入值,系統提供預設的序列值。預設從1開始,每次自增1 1 建立表時設定標識列 id int primary key auto increment 自增列插入值時可以把對應的列寫null,系統預設給值 例如 insert table student va...

手動修改MAC位址可以突破IP MAC繫結嗎?

這個世界有矛就有盾,既然有ip mac繫結的技術,總歸就有人會嘗試去突破這個繫結。一般來說,無非是通過 修改ip位址 和 修改mac位址 兩種方式。1.ip位址的修改很簡單,在 本地連線 裡面,修改tcp ip的屬性就可以,如圖 2.大多數人不知道,其實電腦還可以修改 mac位址 如下圖 3.所以,...