title: How to identify system objects when viewing list of SQL Server database objects?
body: <p>I'm trying to list all the stored procedures from all the databases on my server, and I can't seem to filter out system objects reliably. I was using:</p>
  
  <pre><code>SELECT *
    FROM sysobjects
   WHERE id &gt; 100
  </code></pre>
  
  <p>Which seems to work fine in every database except MSDB, which is full of a ton of stored procs with normal-looking IDs, but they're system stored procs. As far as I can tell, there's no way for me to filter out system stored procs using any of the values in the sysobjects table - does anybody else know of a value that can be used to filter?</p>
  
  <p>They're all marked as type="P", which means it's a stored proc, but there seems to be no flag to specify if it's a system stored proc or a user one. I can use the sys.objects view and filter for "IsMsShipped=0", but I'd like something that also works on SQL 2000, so I'd prefer to use the older views (like sysobjects) if it's possible.</p>