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

sql修改表的主鍵欄位

發布時間: 2023-02-08 00:13:04

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

有一需求,就是把表中作為主鍵欄位的數據類型從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 server 2000如何修改主鍵欄位

最簡單的方法是用企業管理器直接修改數據類型。 如下是使用T-SQL(SQL 2000)修改的語句:
alter table TableName drop constraint PK_TableName --PK_TableName原主鍵名稱,刪除原來的主鍵
go
alter table TableName alter column [username] varchar(10) not null --修改數據類型
go
alter table TableName add constraint PK_TableName primary key clustered([username]) --重新創建主鍵

Ⅲ 如何使用SQL語句修改表內的數據

修改表中內容

修改用到update語句,語句格式為:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

即 update 員工表 set 部門id=01 where 員工id=0004

SQL聯合主鍵

  • Create Table 表名 (欄位名1 Int Not Null,

  • 欄位名2 nvarchar(13) Not Null Primary Key (欄位名1, 欄位名2),

    欄位名3????

    欄位名N???? )

(3)sql修改表的主鍵欄位擴展閱讀

主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。 建立主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。

  1. 在資料庫提供的GUI環境中建立(以SQL7為例)。輸入表信息後按Ctrl鍵同時選中多行,然後點上面的主鍵按鈕就行了。

  2. 通過SQL語句執行建立。又分兩種,一是在建表語句中直接寫,二是建表之後更改表結構。

    在建表語句中直接寫:

  3. Create Table 表名 (欄位名1 Int Not Null,

欄位名2 nvarchar(13) Not Null Primary Key (欄位名1, 欄位名2),

欄位名3????

欄位名N???? )

Ⅳ 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資料庫主鍵修改問題

這個問題想多了就變復雜了。
首先要確定除了你自己外沒有人操作資料庫;
更新表A中的主鍵、和另一個欄位;
更新B、C表中的AOID;
不需要關聯,都直接增加6000即可。

update A set oid=oid+6000,recipientcertificateid=recipientcertificateid+6000;
update B set AOID=AOID+6000;
update C set AIOD=AIOD+6000;

原理:
A表直接將欄位增加6000,而B與C表中外鍵需要相應修改,同時全表更新外鍵增加6000即可。

那就建一張臨時表,把數據導到臨時表,然後清空本表,再重新插入,插入的時候用新的OID規則。

Ⅵ 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資料庫中的主鍵數據

設計資料庫結構時,應該避免主鍵欄位有意義,比如用學生學號、人的身份證號做主鍵都不好,因為這些數據後期都可能要改動,最好用一個序列號做主鍵去關聯所有的子表,這樣就不需要改主表主鍵值了。
你這個問題可以這樣解決,先把要改主鍵的記錄復制一條,主鍵用新值,然後把所有子表的對應記錄改掉,最後刪除主表的原記錄。