2010-12-07 43 views
20

在SQL Server中:INFORMATION_SCHEMA vs sysobjects

INFORMATION_SCHEMA和sysobjects有什麼區別?一個人提供比另一個更多的信息嗎?或者他們通常用於不同的事情?

sysobjects是否與sys.objects相同?如果沒有,這些有什麼區別?

+5

`sysobjects`從SQL Server 2005開始被棄用 - 使用`sys`模式中的目錄視圖來代替:`sys.tables`,`sys.indexes`等等 – 2010-12-07 22:16:23

回答

30

INFORMATION_SCHEMA是SQL-92標準的一部分,所以它不可能像sysobjects那樣經常變化。

視圖提供了SQL Server元數據的內部系統表獨立視圖。即使對底層系統表進行了重大更改,它們也能正常工作。

查詢INFORMATION_SCHEMA總是好得多,因爲它隱藏了sysobjects中對象的實現細節。

7

INFORMATION_SCHEMA是ANSI標準,在其SQL Server實現中有所擴展。 sysobjects是特定於SQL Server的。老版本的SQL Server不支持它。

因此,INFORMATION_SCHEMA更便攜(適用於其他數據庫),比sysobjects更容易使用。如果它有你需要的信息,我會去INFORMATION_SCHEMA

sys.objects sysobjects僅適用於SQL 2000的可移植性。

+3

其實:`sys.objects`是新的SQL Server 2005版本的目錄視圖; `sysobjects`(沒有點)是舊的,向後兼容的SQL Server 2000目錄表 – 2010-12-07 22:17:11

相關問題