秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
SQLite不支持直接修改字段类型,如需要修改字段类型,可按以下方法处理:
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)');

 

posted on 2024-07-21 09:00  秋·风  阅读(351)  评论(0编辑  收藏  举报