Cod*_*ies 5 sql-server sql-server-2008
我正在运行这个SQL:
SELECT S.name as Owner, T.name as TableName FROM sys.tables AS T
JOIN sys.schemas AS S ON S.schema_id = T.schema_id
Run Code Online (Sandbox Code Playgroud)
结果是:
Owner TableName
------------------------
dbo Person
dbo Customer
dbo sysdiagrams
Run Code Online (Sandbox Code Playgroud)
sysdiagrams是一个system table但结果显示.
更新: 感谢所有人的回答和评论,我正在使用Nate Bolam和vmvadivel答案:
SELECT S.name as Owner, T.name as TableName
FROM
sys.tables AS T
INNER JOIN sys.schemas AS S ON S.schema_id = T.schema_id
LEFT JOIN sys.extended_properties AS EP ON EP.major_id = T.[object_id]
WHERE
T.is_ms_shipped = 0 AND
(EP.class_desc IS NULL OR (EP.class_desc <>'OBJECT_OR_COLUMN' AND
EP.[name] <> 'microsoft_database_tools_support'))
Run Code Online (Sandbox Code Playgroud)
Nat*_*lam 10
SSMS使用扩展属性将sysdiagrams表标记为一种伪系统表.
试试这个:
SELECT S.name as Owner, T.name as TableName FROM sys.tables AS T
INNER JOIN sys.schemas AS S ON S.schema_id = T.schema_id
LEFT JOIN sys.extended_properties AS EP ON EP.major_id = T.[object_id]
WHERE (EP.class_desc IS NULL
OR (EP.class_desc <> 'OBJECT_OR_COLUMN'
AND EP.[name] <> 'microsoft_database_tools_support'))
Run Code Online (Sandbox Code Playgroud)