當前位置:首頁 » 編程語言 » sql中能改表的主鍵的類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中能改表的主鍵的類型

發布時間: 2023-08-07 07:29:53

sql中主鍵列能修改嗎

如果表之前有主鍵則先刪除:
alter table 表名 drop constraint 主鍵名
修改主鍵:
alter table 表名 add constraint 主鍵名 primary key (column1,column2,....,column)
注意:這里的主鍵名是自己定義的一個字元串,可以不是表中欄位名(習慣寫成:PK_表名 的格式),不過要牢記啊,刪除的時候用到的也是這個名!括弧中的才是表中存在的欄位。

㈡ sql --表建好後,想改主鍵.用sql語句怎樣寫

分2步,先刪除原來的,再建新的
1、ALTER TABLE table_name DROP PRIMARY KEY (id)
說明:把主鍵的定義刪除。
ALTER TABLE table_name ADD PRIMARY KEY (no)
說明:更改表得的定義把no設為主鍵。

㈢ sql 修改主鍵類型,如圖將administrator 表中的adName欄位修改為varchar(15) 類型怎麼修改

Mysql

使用 CHANGE COLUMN 來修改列的數據類型,還必須 設置 列名。
使用 MODIFY COLUMN 不用輸入2次列名。

mysql> ALTER TABLE test_tab
-> CHANGE COLUMN age age TINYINT;
Query OK, 0 rows affected (0.16 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE test_tab
-> MODIFY COLUMN age BIGINT NOT NULL;
Query OK, 0 rows affected (0.14 sec)

Records: 0 Duplicates: 0 Warnings: 0

這個不知道修改主鍵的情況下, 會不會報錯了。 呵呵。

㈣ SQL語句如何更改表中的欄位類型

SQL如何用語句更改欄位可以用以下語句可以實現:

altertable表名altercolumn欄位名變更後的欄位類型。

注意:

但若是關鍵欄位,帶有主鍵,並且欄位類型為用戶自定義類型,具有默認值的情況下,用上述語句會出現錯誤。

例如:

現假設表為TABLE1,關鍵欄位為FIELD1,主鍵為PK_FIELD1,關鍵欄位的數據類型為用戶自定義數據類型cha_field1,實際為CHAR(10),默認值為dbo.D_field1現要求將欄位類型改為varchar(20),默認值去除錯誤提示如下:

伺服器:消息5074,級別16,狀態1,行1

對象'D_field1'依賴於列'field1'。

伺服器:消息5074,級別16,狀態1,行1

對象'PK_field1'依賴於列'field1'。

伺服器:消息4922,級別16,狀態1,行1

ALTERTABLEALTERCOLUMNfield1失敗,因為有一個或多個對象訪問此列。

㈤ 如何更改數據表主鍵欄位的數據類型

有一需求,就是把表中作為主鍵欄位的數據類型從int 轉換為 uniqueidentifier。我們可能會想到直接通過Microsoft SQL Server Management Studio (MSSMS)修改表結構,刪除原來的主鍵,增加一個數據類型為uniqueidentifier的欄位作為主鍵,並對它設置not null default(newid()) 。
對於單獨的表,主鍵沒有被其他表作為外鍵,可以這樣修改,但一旦存在外鍵時,我們就不能這樣修改了。至少我們需要通過編寫T-SQL語句來實現,基本方法是:
1.刪除外鍵約束
2.修改表欄位類型(刪除主鍵約束-->新增uniqueidentifier類型的欄位(default(newid())),並設置為主鍵)
3.在其他表(原主鍵欄位,在其他表作為外鍵的表)新增uniqueidentifier類型的欄位(default(newid()))。
4.更新數據
5.欄位重新命名
6.重新創建外鍵
當然你還要考慮索引是否要重新創建,如果我們要修改一大堆的表,那麼需要寫一大堆的T-SQl代碼。
為了解決這一問題,這里我為此特別寫了一個存儲過程up_ModifyPrimaryColumn來實現表主鍵數據類型轉換。
http://blog.csdn.net/DVD_01/article/details/8277301?utm_source=jiancool

㈥ sql的鍵值類型的主屬性怎麼設置

sql的鍵值類型的主屬性怎麼設置?sql要怎麼設置主鍵呢?本文以sql server資料庫為例,講解幾種設置方式:
1)新建表時設置主鍵
2)修改表主鍵
3)sql語句刪除主鍵
4)sql語句添加主鍵
5)sql語句修改主鍵
方法/步驟分步閱讀
1
/8
打開【SQL Server Management Studio】管理工具,連接資料庫
2
/8
【新建表時設置主鍵】- 打開新建表界面
1)展開要新建表的資料庫
2)右鍵【表】菜單,依次選擇【新建】->【表】
3
/8
【新建表時設置主鍵】- 設置主鍵
1)在「新建表界面」,加入兩個測試列的行
2)選擇任何一行,右鍵選擇【設置主鍵】
3)聯合主鍵設置:按住ctrl鍵,配合滑鼠左鍵,可以多選幾行,然後右鍵選擇【設置主鍵】
4)添加列後,點擊【保存】按鈕,在彈出框中輸入「表名稱」,點擊確定按鈕即可
4
/8
【修改表主鍵】- 打開設計表界面
右鍵選擇要修改的表,選擇【設計】菜單,即可打開此表的設計界面,此時,可以修改列名、列類型、長度等等
5
/8
【修改表主鍵】- 修改主鍵
1)在「表設計」界面,右鍵任何一行,選擇「設置主鍵」
2)調整好表屬性後,點擊「保存」按鈕即可
3)聯合主鍵設置:按住ctrl鍵,配合滑鼠左鍵,可以多選幾行,然後右鍵選擇【設置主鍵】
4)對於有數據的表,如果修改後的主鍵存在數據重復行,則會提示修改失敗,此時,需要視具體業務場景刪除重復記錄或者更改另外的列作為主鍵
6
/8
【sql語句刪除主鍵】
1)點擊sql server管理工具的菜單【新建查詢】,打開查詢窗口
2)在查詢窗口中輸入截圖的命令刪除主鍵
ALTER TABLE 表名 DROP CONSTRAINT [鍵名];
7
/8
【sql語句添加主鍵】
1)點擊sql server管理工具的菜單【新建查詢】,打開查詢窗口
2)在查詢窗口中輸入截圖的命令添加主鍵
ALTER TABLE 表名 ADD CONSTRAINT 鍵名 PRIMARY KEY ( 列名,多個列名用逗號分隔 );
3)添加主鍵之前,如果該表原來有主鍵,需要先刪除主鍵,再添加,就等同於修改主鍵了
8
/8
【sql語句修改主鍵】
1)點擊sql server管理工具的菜單【新建查詢】,打開查詢窗口
2)在查詢窗口中輸入截圖的命令修改主鍵
3)如果表存在主鍵,需要先刪除原主鍵。

㈦ sql怎麼設置主鍵

1.主鍵語法
①創建時:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno) );
②修改時:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先沒有設置主鍵。
2.外鍵語法
①創建時:create table sc (
studentno int,
courseid int,
score int,
foreign key (courseid) );
②修改時:
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[約束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用組合主鍵
如果一列不能唯一區分一個表裡的記錄時,可以考慮多個列組合起來達到區分表記錄的唯一性,形式
①創建時:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改時:alter table tb_name add primary key (欄位1,欄位2,欄位3);
前提是原來表中沒有設置主鍵,若原先已有主鍵則會報錯。

㈧ SQL Server怎樣用sql語句修改一個表中主鍵欄位(它同時又是另一個表的外鍵及主鍵)的欄位類型

要修改主鍵和外鍵的話需要先指定主鍵和外鍵的名稱,以後修改時要用到。
這是的主鍵和外鍵為:

修改的sql語句:
--修改主鍵的名稱PK_myTest為PK_myTest22
alter table myTest drop constraint PK_myTest
alter table myTest add constraint PK_myTest22 primary key(aa)
--修改外鍵的名稱fk_myTest為fk_myTest22
alter table myTest drop constraint fk_myTest
alter table myTest add constraint fk_myTest22 foreign key(bb) references test!

㈨ SQL表主鍵可不可以修改update

ifobject_id('primarytbl')isnotnull
droptableprimarytbl
go

--建主表
createtableprimarytbl
(
IDintprimarykey,--主鍵
aaint,
bbint,
ccint
)
go

ifobject_id('foreigntbl')isnotnull
droptableforeigntbl
go

--建外表
createtableforeigntbl
(
IDintprimarykey,--主鍵
aaint
(ID)--建立外鍵
onupdatecascade,--更新級聯
ddint,
eeint
)
go

--插入主表數據
insertintoprimarytbl
select1,1,2,3unionall
select2,2,3,4unionall
select3,3,4,5unionall
select4,4,5,6unionall
select5,5,6,7unionall
select6,6,7,8
go

--插入外表數據
insertintoforeigntbl
select1,1,2,2unionall
select2,1,3,3unionall
select3,2,4,4unionall
select4,2,4,4unionall
select5,2,5,5unionall
select6,3,6,6unionall
select7,4,7,7
go

--顯示主外表信息
select*
fromprimarytbl

select*
fromforeigntbl
go
--primarytbl
/*
IDaabbcc
--------------------------------------------
1123
2234
3345
4456
5567
6678
--foreigntbl
IDaaddee
--------------------------------------------
1122
2133
3244
4244
5255
6366
7477
*/

--更新主表主鍵
updateprimarytbl
setID=8
whereID=1
go

--結果
select*
fromprimarytbl

select*
fromforeigntbl
go

/*
--primarytbl
IDaabbcc
--------------------------------------------
2234
3345
4456
5567
6678
8123
--foreigntbl
IDaaddee
--------------------------------------------
1822
2833
3244
4244
5255
6366
7477
*/

droptableforeigntbl
droptableprimarytbl