I see two ways how a record can be referred somewhere:
- In Attributes validated by pick lists
- In link attributes using a relationship
In the first case, it's not really a reference. For example "Owner" on Incident, is a pick list of employees. When I assign a user to an incident, say the user "EU1", the information is stored in two columns in the database:
The name in this case (depending on the pick list settings) and the employee RecId.
If I change the employee name, say EU2, well the incident created above will still refer to "EU1" but with the same RecId as you can see below.
In the second case, there's only the RecId. Let's take for instance the "Customer" field of incident: It's associated to a relationship with Employee.ExternalContact.
In both cases, there's a reference to the RecId so if you know the RecId of a specific category you'd like to check the references you can use SQL Management Studio plugins such as "Apex Search" which allow you to see if this RecId is referenced anywhere.
It's free and quick to install: ApexSQL Search - Free SQL search | ApexSQL .
If you have too many categories to check, I'd have a look in the configuration console > Business Objects > Open the category > Relationships > And you may have to query each table where it's referenced in.
Hope it might help you !