SQLite不支持直接修改字段类型,如需要修改字段类型,可按以下方法处理:
1、将要修改的字段名改名
2、用新的类型添加字段
3、复制原字段的内容
4、删除旧字段
1、将要修改的字段名改名
2、用新的类型添加字段
3、复制原字段的内容
4、删除旧字段
procedure SQLiteAlter(UniSQL:Tuniconnection; TableName,ColName,NewFileType:string); var sql:string; begin sql:='ALTER TABLE '+TableName+' RENAME COLUMN '+ColName+' TO '+ColName+'_old'; UniSQL.Execute(sql); sql:='ALTER TABLE '+TableName+' ADD COLUMN '+ColName+' '+ NewFileType; UniSQL.Execute(sql); sql:='UPDATE '+TableName+' SET '+ColName+' = CAST('+ColName+'_old AS '+NewFileType+')'; UniSQL.Execute(sql); sql:='ALTER TABLE '+TableName+' DROP COLUMN '+ColName+'_old'; UniSQL.Execute(sql); end;
//Demo: SQLiteAlter(unisql,'blog_Content','TestFieldName','nvarchar(50)');