Cela fonctionne sur mon installation SQL Server 2008 R2. Je ne vois pas grand chose à part les bases de données utilisateurs
SELECT
*
FROM
sys.objects
WHERE
OBJECTPROPERTY(object_id, 'IsMSShipped') = 0
Vous pouvez modifier sys.objects pour dire, sys.tables et cela fonctionne toujours, ou utilisez la colonne "type" pour filtrer. Ou utilisez OBJECTPROPERTY(object_id, 'IsProcedure') etc.
Remarque :il s'agit de sys.objects dans SQL Server 2005+
Remarque 2 :OBJECTPROPERTY fonctionnera également pour SQL Server 2000 :
SELECT
*
FROM
sysobjects
WHERE
OBJECTPROPERTY(id, 'IsMSShipped') = 0