2010-12-07 17 views
20

En SQL Server:INFORMATION_SCHEMA vs sysobjects

¿Cuál es la diferencia entre INFORMATION_SCHEMA y sysobjects? ¿Proporciona uno más información que el otro o se usan generalmente para diferentes cosas?

Es sysobjects lo mismo que sys.objects? Si no, ¿cuál es la diferencia entre estos?

+5

'sysobjects' está en desuso a partir de SQL Server 2005 - use las vistas de catálogo en el esquema' sys' en su lugar: 'sys.tables',' sys.indexes' y así sucesivamente –

Respuesta

30

El INFORMATION_SCHEMA es parte del estándar SQL-92, así que no es probable que cambie con tanta frecuencia como sysobjects.

Las vistas proporcionan un sistema de visión interna, mesa-independiente de los metadatos de SQL Server. Funcionan correctamente incluso si se han realizado cambios significativos en las tablas del sistema subyacentes.

Usted es siempre mucho mejor consultar INFORMATION_SCHEMA, porque oculta los detalles de implementación de los objetos en sysobjects.

7

INFORMATION_SCHEMA es un estándar ANSI, algo extented en su aplicación SQL Server. sysobjects es específico de SQL Server. Las versiones antiguas de SQL Server no lo admiten.

Así INFORMATION_SCHEMA es más portátil (funciona en otra base de datos) y un poco más fácil de usar que sysobjects. Si tiene la información que necesita, me gustaría obtener el INFORMATION_SCHEMA.

sys.objects sysobjects solo está disponible para la portabilidad SQL 2000.

+3

En realidad: 'sys.objects' es el nueva versión de SQL Server 2005 de la vista de catálogo; 'sysobjects' (sin puntos) es la antigua tabla de catálogo de SQL Server 2000 compatible con versiones anteriores –

+0

Quise decir sys.sysobjects (lamentablemente, copié el texto original ...) como se indica aquí: http://msdn.microsoft.com /en-us/library/ms177596.aspx –

Cuestiones relacionadas