sql中存储字段的系统表是syscolumns 提取所有某表中所有字段的sql语句可以这样写: SELECT DISTINCT dbo.sysobjects.name AS TableName, dbo.syscolumns.colid, dbo.syscolumns.name AS Field, dbo.systypes.name AS FieldType FROM dbo.systypes INNER JOIN dbo.syscolumns ON dbo.systypes.xusertype = dbo.syscolumns.xusertype RIGHT OUTER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id LEFT OUTER JOIN dbo.sysproperties ON dbo.syscolumns.id = dbo.sysproperties.id AND dbo.sysproperties.smallid = dbo.syscolumns.colid WHERE (dbo.sysobjects.xtype = 'U') and sysobjects.name = "TableName");
提取所有某表中所有字段的sql语句可以这样写:
SELECT DISTINCT dbo.sysobjects.name AS TableName, dbo.syscolumns.colid, dbo.syscolumns.name AS Field, dbo.systypes.name AS FieldType FROM dbo.systypes INNER JOIN dbo.syscolumns ON dbo.systypes.xusertype = dbo.syscolumns.xusertype RIGHT OUTER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id LEFT OUTER JOIN dbo.sysproperties ON dbo.syscolumns.id = dbo.sysproperties.id AND dbo.sysproperties.smallid = dbo.syscolumns.colid WHERE (dbo.sysobjects.xtype = 'U') and sysobjects.name = "TableName");
那在ACCESS里查询字段的语句又该如何写
可以获得一个DataTable吧?
for (....datatable.coloums.count)
{
datatable.coloums[i].coloumname
}
修改字段的名称修改syscolumns.name的值
你可以试一下,先执行一下上面给你的那个sql语句,看看某一个表中字段colid的值,然后手动在那个表里插入一个字段,再看colid的值的确是重新排序过的。
执行“sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE” 设置为允许修改系统表
执行“sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE” 恢复为不允许修改具体写什么值就得你自己排了。
我是想直接在数据库里保存一张交叉表(二维表),考虑到数据量不大,所以想以交叉表的形式直接保存到数据库里。
用户修改时通过dataset填充到datagrid里的表数据,修改后直接更新到数据库里,现在想知道的是如何修改字段名称,和在两个字段间差入新字段