1. 如何更改數據表主鍵欄位的數據類型
有一需求,就是把表中作為主鍵欄位的數據類型從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
2. 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失敗,因為有一個或多個對象訪問此列。
3. 怎麼修改欄位的類型
alert table 表名<br>alter column 欄位名 欄位類型<br><br>比如修改 t1表的a欄位為文本類型<br>alter table t1<br>alter column a text(50)<br><br>也可選擇表,右鍵單擊,選擇修改,在設計器里修改
4. 怎麼修改資料庫欄位表的欄位類型
mysql> alter table 表名 modify column 欄位名 類型;
例如
資料庫中address表 city欄位是varchar(30)
修改類型可以用(謹慎修改類型,可能會導致原有數據出錯)
mysql> alter table address modify column city char(30);
5. 如何修改欄位數據類型
8.0版以上的時候:
alter table 你的表名 alter column 列名 type 你的新類型
8.0版以下的時候:
把要修改的表mp下來,在mp文件中直接修改,再重新導入道資料庫中。
這個有些危險,如果數據類型不合的話,會出問題。比如由字元類型轉數字類型。
6. mysql資料庫中sql修改欄位類型要怎麼做
方法如下:
//修改一個欄位的類型
alter table user MODIFY new1 VARCHAR(10);
//修改一個欄位的名稱,此時一定要重新指定該欄位的類型
alter table user CHANGE new1 new4 int。
7. 怎麼修改資料庫中欄位的數據類型
alert table 表名
alter column 欄位名 欄位類型
比如修改 t1表的a欄位為文本類型
alter table t1
alter column a text(50)
也可選擇表,右鍵單擊,選擇修改,在設計器里修改
8. 資料庫中轉換數據類型的幾種方法
oracle有三種最基本的數據類型,即字元型、數值型、日期型。 (注意需要起別名的地方要起別名)
oracle提供的單行函數中,針對不同的數據類型,提供大量實用的函數,同時提供一系列數據類型轉換函數,如下:
sql.append(" select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,'yyyy-MM-dd') d_date from t_treasury_yield_curve t where d_date = to_date ('"+d_date+"','yyyy-MM-dd')");
24 小時的形式顯示出來要用 HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from al;
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from al;to_date() function。
1、日期格式參數 含義說明
D 一周中的星期幾。
DAY 天的名字,使用空格填充到 9 個字元。DD 月中的第幾天,DDD 年中的第幾天。
DY 天的簡寫名,IW ISO 標準的年中的第幾周,IYYY ISO 標準的四位年份。YYYY 四位年份,
YYY,YY,Y 年份的最後三位,兩位,一位。
select sysdate,sysdate - interval '7' month from al。
當前時間減去 7 年的時間。
select sysdate,sysdate - interval '7' year from al。
時間間隔乘以一個數字。
select sysdate,sysdate - 8 *interval '2' hour from al
2、日期到字元操作
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al,select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al。
select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al。
3、字元到日期操作
select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al。
具體用法和上面的 to_char 差不多。
4、TO_NUMBER
使用TO_NUMBER函數將字元轉換為數字
TO_NUMBER(char[, '格式'])
數字格式格式:
9 代表一個數字 。
0 強制顯示0 。
$ 放置一個$符 。
L 放置一個浮動本地貨幣符 。
. 顯示小數點 。
, 顯示千位指示符。
(8)更改欄位數據類型有哪些方法擴展閱讀:
在使用數據類型轉換之前,同樣的 SQL 在有的伺服器不報錯,主要是資料庫的版本不同,當然該過配置的不算。
常見的兩種類型轉換錯誤如下:
ERROR: operator does not exist: integer = character varying。
ERROR: operator does not exist: character varying = integer。
字元串轉數字,數字轉字元串。這一點支持的不如 MySQL 好,當然 PostgreSQL 在新版本中也對這個問題做了改進!
第一種轉換方式:使用 CAST 函數。
SELECT * FROM xttblog WHERE id = CAST(888 AS VARCHAR);
SELECT * FROM xttblog WHERE id = CAST('888' AS integer)。
第二種轉換方式:使用「::」操作欄位。
格式,欄位 :: 要轉換為的數據類型。
SELECT * FROM xttblog WHERE id = 888 :: VARCHAR;
SELECT * FROM xttblog WHERE id = '888' :: integer。
數據類型轉換,雖然看起來很痛苦,但是如果用戶的類型用的不對,查詢效率會下降。所以,在設計的時候,欄位的類型,一定要設計的合理,尤其是在關聯表的時候。
9. oracle資料庫如何修改欄位的數據類型
1、首先打開plsql,連接上oracle資料庫,假設有一張資料庫表叫做 tblTest,通過sql查詢也可以看出,這裡面是有測試數據的。