我经常遇到MSSQL数据库,这些数据库的表格多于information_schema
或systables
中列出的表格。
例如,我querying a database right now但只获取表格spt_fallback_db
,spt_fallback_dev
,spt_fallback_usg
,spt_monitor
,spt_values
。 (1)
这是怎么发生的?
并且 - 可以轻松修复吗?
(1)我应该澄清这不是一个权限问题,因为我是数据库中的sysadmin;有大约200张桌子,我完全允许所有这些桌子。
答案 0 :(得分:0)
DECLARE @command varchar(1000)
SELECT @command = 'SELECT * FROM sysobjects WHERE xtype=''U'' '
EXEC sp_MSforeachdb @command
但它只会显示系统表。然后我切换到一个更直接的查询,看看发生了什么,并能够查看表:
use MYDATABASENAME;
SELECT * FROM sysobjects WHERE xtype='U'