读书人

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

发布时间: 2013-03-01 18:33:02 作者: rapoo

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;

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

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


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

读书人网 >.NET

热点推荐