sql主鍵的值修改
1. 請問如何修改sql主鍵列的值
: "可以改,用update 就行,但是要避免主鍵值和表中現有數據沖突。 另,如果有其它表用該表主鍵做外鍵的話,也不能隨便修改主鍵值"
2. SQL語句如何修改主鍵欄位的欄位類型類型
首先,修改主鍵欄位的欄位類型,肯定是要先刪除主鍵才能操作的
--【1.查找主鍵】
--SQLSERVER
select name as pkName from dbo.sysobjects where xtype='PK' and parent_obj=(select id from dbo.sysobjects where name='表名')
--ORACLE
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = UPPER('表名') AND CONSTRAINT_TYPE ='P'
--【2.刪除主鍵約束】
ALTER TABLE 表名 DROP CONSTRAINT 約束名
--ORACLE
--刪除主鍵連同索引
ALTER TABLE 表名 DROP CONSTRAINT 約束名 CASCADE DROP INDEX;
或者
ALTER TABLE 表名 DROP PRIMARY KEY CASCADE DROP INDEX;--【3.修改欄位】
--【先把這一列的值備份到臨時列里,再把這一列update成null,再修改類型,再把數據拷貝回來】
--SQLSERVER
--默認值單獨處理,關聯約束
--默認值的變更涉及到約束,如有約束,需要先查詢出越是再進行刪除
ALTER TABLE 表名 DROP CONSTRAINT 約束名
ALTER TABLE 表名 ALTER COLUMN 欄位名 欄位類型(長度精度) 是否為空
ALTER TABLE 表名 ADD CONSTRAINT 約束名 DEFAULT 默認值 FOR 欄位名
--ORACLE
--刪除默認值:default null
ALTER TABLE 表名 MODIFY COLUMN 欄位名 VARCHAR2(20) DEFAULT ' ' NOT NULL--【4.新增主鍵】
--指定主鍵名字
ALTER TABLE 表名 ADD CONSTRAINT 主鍵名 PRIMARY KEY (F1,F2);
--未指定主鍵名字
ALTER TABLE 表名 ADD PRIMARY KEY (F1,F2)
3. 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]) --重新創建主鍵
4. 用SQL腳本修改表的的主鍵問題
不知道你什麼資料庫.
假如是
SQL
Server
的話,
主鍵必須先非空
1>
CREATE
TABLE
test_tab
(
2>
id
INT,
3>
name
VARCHAR(10),
4>
age
INT,
5>
val
VARCHAR(10)
6>
);
7>
go
1>
ALTER
TABLE
test_tab
2>
ADD
CONSTRAINT
pk_test_tab
PRIMARY
KEY(id);
3>
go
消息
8111,級別
16,狀態
1,伺服器
HOME-BED592453C\SQLEXPRESS,第
1
行
無法在表
'test_tab'
中可為空的列上定義
PRIMARY
KEY
約束。
消息
1750,級別
16,狀態
1,伺服器
HOME-BED592453C\SQLEXPRESS,第
1
行
無法創建約束。請參閱前面的錯誤消息。
首先對
id
這個列,增加一個
NOT
NULL
約束,然後再設置為主鍵。
1>
ALTER
TABLE
test_tab
2>
ALTER
COLUMN
id
INT
NOT
NULL;
3>
go
1>
ALTER
TABLE
test_tab
2>
ADD
CONSTRAINT
pk_test_tab
PRIMARY
KEY(id);
3>
go
5. 主鍵列能否修改sql server資料庫中
主鍵的要求是不能為空,不能存在兩行值相同,只要你修改後的值不與別的行的值相同,可以修改。
6. sql語句如何修改主鍵,請舉個小例子.
補充2:我找到了約束名,已經刪除,但在添加的時候又出問題了,意思說不能在可以為空的欄位上創建primary key約束,那麼應該怎樣改?????????
你修改的為主鍵的列 以前在建表的時候默認是可以NULL的,你把DEFAULT NULL
或者把表結構上的對應列的NULL的勾去掉就可以加主鍵了
不能在可以為空的欄位上創建primary key約束的。。