首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

sqlite3中如何判断某个列是否存在

2013-03-01 
sqlite3中怎么判断某个列是否存在因为表已经有了,后来升级需要新增一些列采用了语句:ALTER TABLE Data ADD

sqlite3中怎么判断某个列是否存在
因为表已经有了,后来升级需要新增一些列
采用了语句:ALTER TABLE Data ADD COLUMN test

但是重复的新增会报错,怎么在新增前先检查这个列是否存在呢?
这里不考虑使用异常的办法
[解决办法]
希望对你有帮助,

如果是Oracle数据库,用下面的SQL判断:
SELECT * FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'MY_TABLE' AND COLUMN_NAME = 'ENABLED'

如果数据库是Access就用下面的函数:


function FieldExists(AccessFullName: string;
  ATable: string;
  FieldName: string
  ): Boolean;
var
  FieldList: TStringList;
  AccessCont: TADOConnection;
  i: Integer;
begin
  Result := False;
  AccessCont := TADOConnection.Create(nil);
  FieldList := TStringList.Create;
  try
    AccessCont.CommandTimeout := 0;
    AccessCont.Provider := 'Microsoft.Jet.OLEDB.4.0';
    AccessCont.LoginPrompt := False;
    AccessCont.ConnectionString :=
      'Provider=Microsoft.Jet.OLEDB.4.0;Password="";'
      + 'Persist Security Info=True;Data Source=' + AccessFullName;

    AccessCont.Open;
    AccessCont.GetFieldNames(ATable, FieldList);
    //Result := FieldList.IndexOfName(ATableFieldName) <> -1;
    for i := 0 to FieldList.Count - 1 do
      if FieldList[i] = FieldName then
      begin
        Result := True;
        Break;
      end;
    AccessCont.Close;
  finally
    AccessCont.Free;
    FieldList.Free;
  end;
end;

[解决办法]
引用:
引用:不考虑使用异常的办法。。。。

有没有列出字段的函数?
没有吧。。。


打开表,应该能得到所有列的信息了。。。

热点排行