Site Content Type in Use – Error while Deleting Content Type

If you get “Site Content Type in Use” error while deleting the content type.

Change the default content type for the list/library, which uses this content type.

Then try to delete the content type.

2 comments to Site Content Type in Use – Error while Deleting Content Type

  • KKelaiya

    How to find in which libraries this content type is used?

  • Refer to the discussion in my forum :
    http://www.mstechblogs.com/Forums/viewtopic.php?f=8&p=12&sid=cee7f065bed1fc88d9759c66b373d4dd#p12

    You can use Object Model to find :

    using System;
    using System.Collections.Generic;
    using Microsoft.SharePoint;

    namespace Test
    {
    class ConsoleApp
    {
    static void Main(string[] args)
    {
    using (SPSite siteCollection = new SPSite(“http://localhost”))
    {
    using (SPWeb webSite = siteCollection.OpenWeb())
    {
    // Get the obsolete content type.
    SPContentType obsolete = webSite.ContentTypes[“Test”];

    if (obsolete != null) // We have a content type.
    {
    IList usages = SPContentTypeUsage.GetUsages(obsolete);
    if (usages.Count > 0) // It is in use.
    {
    Console.WriteLine(“The content type is in use in the following locations:”);
    foreach (SPContentTypeUsage usage in usages)
    Console.WriteLine(usage.Url);
    }
    else // The content type is not in use.
    {
    // Delete it.
    Console.WriteLine(“Deleting content type {0}…”, obsolete.Name);
    webSite.ContentTypes.Delete(obsolete.Id);
    }
    }
    else // No content type found.
    {
    Console.WriteLine(“The content type does not exist in this site collection.”);
    }
    }
    }
    Console.Write(“\nPress ENTER to continue…”);
    Console.ReadLine();
    }
    }
    }

    Other Option would be using SQL query (beware its bit risky)

    SELECT *
    FROM AllUserData
    WHERE (tp_DirName LIKE ‘%’)
    AND ((tp_ContentType = ‘Document’) and tp_ListId=’C8723B19-0DAB-4F19-B195-3399D5375752′)

    You will find items referenced by content type. Delete this referenced items using query below.

    DELETE
    FROM AllUserData
    WHERE (tp_DirName LIKE ‘%’)
    AND ((tp_ContentType = ‘Document’) and tp_ListId=’C8723B19-0DAB-4F19-B195-3399D5375752′)

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>