自增列可以手動修改嗎?
當然可以了
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.所以,...