【发布时间】:2016-03-29 10:02:30
【问题描述】:
有没有办法在 Salesforce 中获取表中所有字段的列表?
下面是我用来从特定表中获取所有列的 SQL 语句:
SELECT * FROM myTableName;
【问题讨论】:
标签: sql salesforce soql
有没有办法在 Salesforce 中获取表中所有字段的列表?
下面是我用来从特定表中获取所有列的 SQL 语句:
SELECT * FROM myTableName;
【问题讨论】:
标签: sql salesforce soql
不,没有办法获取所有字段。 只能通过额外的 SOAP API。
【讨论】:
MySQL: 执行查询describe myTableName;
MS SQL: 执行查询exec sp_columns MyTable
【讨论】:
select t.name,c.name from sys.tables t join sys.columns c on t.object_id=c.object_id
它将显示数据库中所有表的所有字段
或 select t.name,c.name from sys.tables t join sys.columns c on t.object_id=c.object_id 其中 t.name like '%TableName%' 将显示特定表的所有字段。
【讨论】:
假设您需要 Account 对象(供参考),试试这个:
String[] allFields = new String[]{};
Map<String, Schema.SObjectField> fields = Schema.Account.SObjectType.getDescribe().fields.getMap();
for (String fieldName:fields.keySet()) {
DescribeFieldResult fieldDesc = fields.get(fieldName).getDescribe();
if (fieldDesc.isAccessible()) {
allFields.add(fieldDesc.getName());
}
}
Account[] accs = Database.query('select ' + String.join(allFields, ', ') + ' from Account limit 1');
system.debug(accs);
【讨论】: