2009-08-23 6 views

Répondre

5
select * from sysobjects 
where xtype = 'U' 

Les tables système ont un object_type de "S" - de sorte que devrait vous donner juste vos tables d'utilisateur.

Voir le sysobjects documentation on MSDN pour plus de détails sur les types d'objets possibles.

Object type. Can be one of these object types: 

C = CHECK constraint 
D = Default or DEFAULT constraint 
F = FOREIGN KEY constraint 
L = Log 
FN = Scalar function 
IF = Inlined table-function 
P = Stored procedure 
PK = PRIMARY KEY constraint (type is K) 
RF = Replication filter stored procedure 
S = System table 
TF = Table function 
TR = Trigger 
U = User table 
UQ = UNIQUE constraint (type is K) 
V = View 
X = Extended stored procedure 

Marc

+0

J'ai essayé cette requête, mais les résultats encore montrer des tableaux des tableaux du système (j'utilise Sql Server 2012) –

+0

@Zain: dans SQL Server 2012, j'utiliser 'select * from sys.tables où is_ms_shipped = 0' –

+0

N'a pas fonctionné. Je ne sais pas ce que je fais quelque chose de mal ici. J'ai un tout petit DB que j'ai récemment créé et il a dbo.sysdiagrams sous le dossier System Tables. La seule différence que je vois entre elle et les autres tables dans sys.tables est qu'il a lob_data_space_id mis à 1. Sonner des cloches? –

2

Vous pouvez utiliser la table sysobjects

-- FOR TABLES 
SELECT * 
FROM sysobjects o 
WHERE type = 'U' 

-- FOR VIEWS 
SELECT * 
FROM sysobjects o 
WHERE type = 'V' 

-- FOR STORED PROCEDURES 
SELECT * 
FROM sysobjects o 
WHERE type = 'P' 

Vous pouvez également utiliser INFORMATION_SCHEMA.TABLES dans SQL Server 2000.

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
Questions connexes