INFORMATION_SCHEMA vs sysobjects

时间:2010-12-07 21:26:57

标签: sql-server sql-server-2005 sql-server-2008

在SQL Server中:

INFORMATION_SCHEMA和sysobjects之间有什么区别?一个人提供的信息多于另一个,还是通常用于不同的事情?

sysobjects与sys.objects相同吗?如果没有,这些之间有什么区别?

2 个答案:

答案 0 :(得分:33)

INFORMATION_SCHEMA是SQL-92标准的一部分,所以它不太可能像sysobjects一样经常更改。

视图提供了SQL Server元数据的内部系统表独立视图。即使对底层系统表进行了重大更改,它们也能正常工作。

查询INFORMATION_SCHEMA总是好得多,因为它隐藏了sysobjects中对象的实现细节。

答案 1 :(得分:7)

INFORMATION_SCHEMA是ANSI标准,在SQL Server实现中有点夸张。 sysobjects特定于SQL Server。旧版本的SQL Server不支持它。

因此INFORMATION_SCHEMA更易于移植(适用于其他数据库),并且比sysobjects更容易使用。如果它有您需要的信息,我会选择INFORMATION_SCHEMA

sys.objects sysobjects仅适用于SQL 2000的可移植性。