SQLite如何修改字段類型
SQLite不支持直接修改字段類型,如需要修改字段類型,可按以下方法處理:
1、將要修改的字段名改名
2、用新的類型添加字段
3、復制原字段的內(nèi)容
4、刪除舊字段
procedure SQLiteAlter(TableName,ColName,NewFileType:string);
var sql:string;
begin
sql:='ALTER TABLE '+TableName+' RENAME COLUMN '+chr(39)+ColName+chr(39)+' TO '+chr(39)+ColName+'_old'+chr(39);
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='ALTER TABLE '+TableName+' ADD COLUMN '+ColName+' '+ NewFileType;
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='UPDATE '+TableName+' SET '+ColName+' = CAST('+ColName+'_old AS '+NewFileType+')';
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='ALTER TABLE '+TableName+' DROP COLUMN '+ColName+'_old';
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
end;
//Demo:
SQLiteAlter('blog_Content','TestFieldName','nvarchar(50)');補充:sqlite sql 修改字段類型
sqlite數(shù)據(jù)庫中數(shù)據(jù)類型存在sqlite_master表中
select sql from sqlite_master where tb_name='tbname'
把這條sql語句改了,表結構就改了。
sqlite的alter table限制很多,所以一般直接把原表改名。
復制一個表名與原表一樣的,再把改名后的那個原表刪了,以下sql語句可以用。
新表改完字段類型如果不兼容原表,新表中的該字段數(shù)據(jù)讀不出。
所以要改類型可以不用聲明字段類型
alter table zb RENAME TO tempxxx_1; create table zb(rkdh char(15) ,gbdh char(15) ,cph nchar(9) ); INSERT INTO zb(rkdh,gbdh,cph,) select rkdh,gbdh,cph FROM tempxxx_1; drop table tempXXX_1
到此這篇關于SQLite修改字段類型的方法的文章就介紹到這了,更多相關SQLite修改字段類型的方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
sql存儲過程實例--動態(tài)根據(jù)表數(shù)據(jù)復制一個表的數(shù)據(jù)到另一個表
這篇文章主要介紹了sql存儲過程實例--動態(tài)根據(jù)表數(shù)據(jù)復制一個表的數(shù)據(jù)到另一個表的相關資料,需要的朋友可以參考下2017-10-10
SQL SERVER 2012新增函數(shù)之邏輯函數(shù)IIF
這篇文章主要介紹了關于SQL SERVER 2012新增函數(shù)之邏輯函數(shù)IIF的相關資料,網(wǎng)上關于邏輯函數(shù)IIF的資料比較少,本文中的介紹的還是相對詳細的,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
參考sql2012存儲過程寫的統(tǒng)計所有用戶表尺寸大小的示例
參考SQL2005, 2008和2012的系統(tǒng)存儲過程master.sys.sp_spaceused代碼后,寫了下面一條語句來方便平時統(tǒng)計所有用戶表尺寸大小2014-01-01
mssql server 2012(SQL2012)各版本功能對比
今天裝了操作系統(tǒng)2012,也順便搞下SQL 2012看了下版本,選擇了自己的版本,也特留下版本對比供后來人參考2013-04-04
數(shù)據(jù)庫性能優(yōu)化一:數(shù)據(jù)庫自身優(yōu)化提升性能
數(shù)據(jù)庫自身優(yōu)化包括:增加次數(shù)據(jù)文件,設置文件自動增長、表分區(qū),索引分區(qū)、分布式數(shù)據(jù)庫設計、整理數(shù)據(jù)庫碎片等等.需要了解的朋友可以參考下2013-01-01

