秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
SQLite不支持直接修改字段类型,如需要修改字段类型,可按以下方法处理:
1、将要修改的字段名改名
2、用新的类型添加字段
3、复制原字段的内容
4、删除旧字段
  procedure SQLiteAlter(TableName,ColName,NewFileType:string);
  var sql:string;
  begin
    //修改字段名
    sql:='ALTER TABLE '+TableName+' RENAME COLUMN '+ColName+' TO '+ColName+'_old';
    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)');

 

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