如何从Salesforce中删除整个数据表并阻止后续写入?
如何处理Salesforce中废弃的数据表(阻止写入+删除)
第一步:先确认数据表真的没用了
别上来就删,先做足验证:
- 查数据活动:用SOQL跑一下最近的记录更新情况,比如
SELECT Id, CreatedDate, LastModifiedDate FROM YourCustomObject__c ORDER BY LastModifiedDate DESC LIMIT 20,如果几个月甚至一年都没新记录,大概率是废弃了。 - 扫所有依赖:检查有没有触发器、Flow、报表、仪表盘、自定义按钮、Apex代码用到这个对象;还要看有没有其他对象通过lookup/master-detail字段关联它,或者它关联了其他对象。
- 跟业务方确认:别自己觉得没用就删,问清楚业务团队是不是真的彻底不用了,避免误操作。
第二步:先锁死,阻止后续写入
分自定义对象和标准对象两种情况:
自定义对象的锁写方法
- 关创建/编辑权限:在Setup → Object Manager → 目标对象 → 点Profiles或Permission Sets,把所有用户的Create、Edit权限都取消,从根上堵权限。
- 加验证规则:建一个验证规则,公式写
ISNEW() || ISCHANGED(Id),错误信息设成“该数据表已废弃,禁止写入任何数据”,激活后任何人创建或更新记录都会被拦下来。 - 禁用触发器:如果这个对象有Apex触发器,直接去Setup → Apex Triggers里禁用,防止程序自动写数据。
标准对象(没法删,只能限制写入)
- 权限控制:同样在Profiles/Permission Sets里取消Create、Edit权限。
- 验证规则拦截:公式直接写
TRUE,错误信息说明原因,这样任何创建/更新操作都会触发验证错误。 - Flow拦截:建一个记录触发的Flow,当创建或更新记录时,直接抛出错误终止操作,适合需要更灵活逻辑的场景。
第三步:删除自定义数据表(标准对象跳过这步)
自定义对象能删,但得先清干净依赖:
- 清依赖:先删关联的报表、仪表盘、触发器、Flow、自定义字段;解除所有lookup/master-detail关联;删掉引用该对象的Apex类和Visualforce页面。
- 备份数据:用Data Export Service(Setup → Data Export)导出全量数据,或者用Data Loader导出来存好,万一删错了还能恢复。
- 删对象:去Setup → Object Manager → 目标对象 → 点Delete,跟着提示走就行。注意:删了之后15天内可以从回收站恢复,超过就彻底没了。
第四步:验证锁死和删除效果
- 试着创建一条该对象的记录,看是不是被拦截;再改一条旧记录,确认也没法改。
- 检查系统里有没有漏清的依赖,比如某个报表还引用了这个对象,避免用户打开报表时报错。
内容的提问来源于stack exchange,提问作者Sarah McRae
相关产品推荐
相关产品推荐

