哈哈,这个我知道!!
查询表字段:
Use 数据库名称
Select Upper(TB1.Name) 表名,Upper(TB2.Name) 字段名,
Upper(TB3.Name) 字段类型,TB2.Length 字段长度,
TB2.IsNullable 是否为空,Upper(Tb5.Text) 默认值,TB4.步长,Tb4.初始值
From SysObjects TB1,SysColumns Tb2,SysTypes TB3,SysComments Tb5,
(select distinct Upper(TB1.Table_Name) 表名, Upper(TB3.Name) 字段名,
IDENT_INCR(Table_Name) 步长, IDENT_SEED(Table_Name) 初始值
From InFormation_Schema.Tables TB1,SysObjects TB2,SysColumns TB3
Where Table_Name <> 'Dtproperties'
And TB1.Table_Name!=Tb2.Name
And TB2.ID=TB3.ID
And TB3.Name<>'ID'And Tb3.Colstat=1
And IDENT_INCR(Table_Name) Is Not Null
And IDENT_SEED(Table_Name) Is Not Null) TB4
Where Tb1.Name Not Like 'Sys%'
And Tb1.XType='U'
And Tb1.Name !='Dtproperties'
And TB1.ID=TB2.ID
And Tb2.XType= Tb3.XType
And Tb2.XUserType=Tb3.XUserType
And TB2.CDefault *= TB5.Id
And Tb4.表名=*TB1.Name
And Tb4.字段名=*TB2.Name
Order By TB1.Name查询自增长信息:
select distinct Upper(TB1.Table_Name) 表名, Upper(TB3.Name) 字段名,
IDENT_INCR(Table_Name) 步长, IDENT_SEED(Table_Name) 初始值
From InFormation_Schema.Tables TB1,SysObjects TB2,SysColumns TB3
Where Table_Name <> 'Dtproperties'
And TB1.Table_Name!=Tb2.Name
And TB2.ID=TB3.ID
And TB3.Name<>'ID'
And Tb3.Colstat=1
And IDENT_INCR(Table_Name) Is Not Null
And IDENT_SEED(Table_Name) Is Not Null
查询表字段:
Use 数据库名称
Select Upper(TB1.Name) 表名,Upper(TB2.Name) 字段名,
Upper(TB3.Name) 字段类型,TB2.Length 字段长度,
TB2.IsNullable 是否为空,Upper(Tb5.Text) 默认值,TB4.步长,Tb4.初始值
From SysObjects TB1,SysColumns Tb2,SysTypes TB3,SysComments Tb5,
(select distinct Upper(TB1.Table_Name) 表名, Upper(TB3.Name) 字段名,
IDENT_INCR(Table_Name) 步长, IDENT_SEED(Table_Name) 初始值
From InFormation_Schema.Tables TB1,SysObjects TB2,SysColumns TB3
Where Table_Name <> 'Dtproperties'
And TB1.Table_Name!=Tb2.Name
And TB2.ID=TB3.ID
And TB3.Name<>'ID'And Tb3.Colstat=1
And IDENT_INCR(Table_Name) Is Not Null
And IDENT_SEED(Table_Name) Is Not Null) TB4
Where Tb1.Name Not Like 'Sys%'
And Tb1.XType='U'
And Tb1.Name !='Dtproperties'
And TB1.ID=TB2.ID
And Tb2.XType= Tb3.XType
And Tb2.XUserType=Tb3.XUserType
And TB2.CDefault *= TB5.Id
And Tb4.表名=*TB1.Name
And Tb4.字段名=*TB2.Name
Order By TB1.Name查询自增长信息:
select distinct Upper(TB1.Table_Name) 表名, Upper(TB3.Name) 字段名,
IDENT_INCR(Table_Name) 步长, IDENT_SEED(Table_Name) 初始值
From InFormation_Schema.Tables TB1,SysObjects TB2,SysColumns TB3
Where Table_Name <> 'Dtproperties'
And TB1.Table_Name!=Tb2.Name
And TB2.ID=TB3.ID
And TB3.Name<>'ID'
And Tb3.Colstat=1
And IDENT_INCR(Table_Name) Is Not Null
And IDENT_SEED(Table_Name) Is Not Null
TmpDS.FieldDefs.Update;
for i:=0 to TmpDS.FieldDefs.Count -1 do
begin
New(FieldInfo);
FieldInfo.FieldName := TmpDS.FieldDefs[i].Name;
FieldInfo.LinkTable := TableName;
FieldInfo.FieldType := TmpDS.FieldDefs[i].DataType;
FieldInfo.Caption := TmpDS.FieldDefs[i].Name;
...
end;
except
on E:EDatabaseError do
begin
ShowMessage(E.Message);
TmpDS.Free;
Exit;
end;
end;