Close; SQL.Text := Format('SELECT ' + ' a.name FieldName, b.name datatype, a.length, a.prec, a.scale, a.isnullable , ' + ' isnull(e.text,''(_null_)'') defaultvalue FROM syscolumns a ' + ' left join systypes b on a.xtype=b.xusertype ' + ' inner join sysobjects d on a.id=d.id and d.xtype=''U'' and d.name<>''dtproperties'' ' + ' left join syscomments e on a.cdefault=e.id ' + ' left join sysproperties g on a.id=g.id and a.colid=g.smallid ' + ' where d.name = ''%s'' ', [NewDB.Strings[i]]); open;
ms-sqlserver exec sp_pkeys tablename 取主键字段列取表的字段信息 Close; SQL.Text := Format('SELECT ' + ' a.name FieldName, b.name datatype, a.length, a.prec, a.scale, a.isnullable , ' + ' isnull(e.text,''(_null_)'') defaultvalue FROM syscolumns a ' + ' left join systypes b on a.xtype=b.xusertype ' + ' inner join sysobjects d on a.id=d.id and d.xtype=''U'' and d.name<>''dtproperties'' ' + ' left join syscomments e on a.cdefault=e.id ' + ' left join sysproperties g on a.id=g.id and a.colid=g.smallid ' + ' where d.name = ''%s'' ', [yourtablename]); open;
const SqlStr='SELECT d .name N''表名'', a.name N''字段名'', (CASE WHEN COLUMNPROPERTY(a.id, '+ 'a.name, ''IsIdentity'') = 1 THEN ''√'' ELSE '''' END) N''标识'', (CASE WHEN '+ '(SELECT COUNT(*) FROM sysobjects '+ 'WHERE (name IN '+ '(SELECT name FROM sysindexes '+ 'WHERE (id = a.id) AND (indid IN '+ '(SELECT indid FROM sysindexkeys '+ 'WHERE (id = a.id) AND (colid IN '+ '(SELECT colid FROM syscolumns '+ 'WHERE (id = a.id) AND (name = a.name))))))) AND '+ '(xtype = ''PK'')) > 0 THEN ''√'' ELSE '''' END) N''主键'', b.name N''类型'', '+ 'a.length N''长度'', (CASE WHEN a.isnullable = 1 THEN ''√'' ELSE '''' END) '+ 'N''允许空'' '+ 'FROM syscolumns a LEFT JOIN '+ 'systypes b ON a.xtype = b.xusertype INNER JOIN '+ 'sysobjects d ON a.id = d .id AND d .xtype = ''U'' AND d .name <> ''dtproperties'' LEFT '+ 'JOIN '+ 'syscomments e ON a.cdefault = e.id ';
SQL.Text := Format('SELECT '
+ ' a.name FieldName, b.name datatype, a.length, a.prec, a.scale, a.isnullable , '
+ ' isnull(e.text,''(_null_)'') defaultvalue FROM syscolumns a '
+ ' left join systypes b on a.xtype=b.xusertype '
+ ' inner join sysobjects d on a.id=d.id and d.xtype=''U'' and d.name<>''dtproperties'' '
+ ' left join syscomments e on a.cdefault=e.id '
+ ' left join sysproperties g on a.id=g.id and a.colid=g.smallid '
+ ' where d.name = ''%s'' ', [NewDB.Strings[i]]);
open;
exec sp_pkeys tablename 取主键字段列取表的字段信息
Close;
SQL.Text := Format('SELECT '
+ ' a.name FieldName, b.name datatype, a.length, a.prec, a.scale, a.isnullable , '
+ ' isnull(e.text,''(_null_)'') defaultvalue FROM syscolumns a '
+ ' left join systypes b on a.xtype=b.xusertype '
+ ' inner join sysobjects d on a.id=d.id and d.xtype=''U'' and d.name<>''dtproperties'' '
+ ' left join syscomments e on a.cdefault=e.id '
+ ' left join sysproperties g on a.id=g.id and a.colid=g.smallid '
+ ' where d.name = ''%s'' ', [yourtablename]);
open;
要求是通过ADO或者DAO来取得表结构信息
如果对于Access数据库就不灵了
'a.name, ''IsIdentity'') = 1 THEN ''√'' ELSE '''' END) N''标识'', (CASE WHEN '+
'(SELECT COUNT(*) FROM sysobjects '+
'WHERE (name IN '+
'(SELECT name FROM sysindexes '+
'WHERE (id = a.id) AND (indid IN '+
'(SELECT indid FROM sysindexkeys '+
'WHERE (id = a.id) AND (colid IN '+
'(SELECT colid FROM syscolumns '+
'WHERE (id = a.id) AND (name = a.name))))))) AND '+
'(xtype = ''PK'')) > 0 THEN ''√'' ELSE '''' END) N''主键'', b.name N''类型'', '+
'a.length N''长度'', (CASE WHEN a.isnullable = 1 THEN ''√'' ELSE '''' END) '+
'N''允许空'' '+
'FROM syscolumns a LEFT JOIN '+
'systypes b ON a.xtype = b.xusertype INNER JOIN '+
'sysobjects d ON a.id = d .id AND d .xtype = ''U'' AND d .name <> ''dtproperties'' LEFT '+
'JOIN '+
'syscomments e ON a.cdefault = e.id ';
要求是通过ADO或者DAO来取得表结构信息
如果对于Access数据库就不灵了