日期:2014-05-18  浏览次数:20904 次

对master.dbo.sysobjects和sys.objects的查询
请教个问题,我查询一个表的信息:
SELECT * FROM master.dbo.sysobjects WHERE id=OBJECT_ID('Production.Product')
sysobjects系统表里没有object_id这一列,但有id这一列的,这两栏里的数字应该是一致的。
这个查询,只显示了列名,没有数据

SELECT * FROM sys.objects WHERE object_id=OBJECT_ID('Production.Product')
sys.objects是视图,对么?这个倒是可以查出结果来的

我想请教的问题是,为什么我在表对象系统表里查不到数据,但在表对象系统视图里就可以

------解决方案--------------------
1,没查到数据,那是因为你查的数据库是master

select * from 你的数据库.dbo.sysobjects where id=OBJECT_ID('production.product')

2.sys.objects是系统视图,
第二个可以查出结果,估计你目前所在的数据库是你的用户数据库。


在2005及以上版本,请使用sys.objects系统视图,sysobjects只为兼容保留。