sql >> Base de Datos >  >> RDS >> Sqlserver

Tablas de lista de SQL Server:cómo mostrar todas las tablas

Según la versión de SQL Server que esté ejecutando, el método para consultar y devolver una lista de todas las tablas creadas por el usuario puede diferir ligeramente. A continuación, examinaremos brevemente las instrucciones TSQL que se pueden usar para recuperar una lista de tablas tanto para el SQL Server 2000 anterior como para la versión 2005 más reciente o posteriores.

Listado de tablas en SQL Server 2000

Para versiones anteriores de SQL Server (como SQL Server 2000, aunque este método también es compatible con SQL Server 2005 por motivos de compatibilidad con versiones anteriores), deberá consultar SYS.SYSOBJECTS vista de metadatos. SYS.SYSOBJECTS contiene una fila para cada objeto que se ha creado en la base de datos, incluidos los stored procedures , views y user tables (que es importante distinguir de las system tables .)

Los SYSOBJECTS table alberga un par de docenas de columnas de datos, ya que debe contener información sobre prácticamente todo lo que se agrega al servidor a lo largo del tiempo. Por lo tanto, para encontrar una lista de tablas creadas por el usuario (ignorando así system tables ), necesitaremos encontrar resultados donde xtype columna (que especifica el object type para esa fila) es igual al valor U , que significa user table . La declaración TSQL resultante debería verse así:

SELECT
  *
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Nota:Desde SYSOBJECTS son parte del SYS espacio de nombres, al consultar SYSOBJECTS no es necesario especificar que SYSOBJECTS es parte del SYS global espacio de nombres, por lo que podemos omitirlo como se muestra en el ejemplo anterior.

Esto devolverá una lista de resultados de todas las tablas creadas por el usuario. Dado que la cantidad de información devuelta al consultar todas las columnas es bastante grande, es posible que desee recortar los resultados viendo solo el name columna y quizás el crdate (fecha de creación):

SELECT
  name,
  crdate
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Listado de tablas en SQL Server 2005 o posterior

Enumerar todas las tablas en el servidor SQL cuando se usa una versión más nueva (SQL 2005 o superior) es cuestión de consultar el INFORMATION_SCHEMA vistas que se integran automáticamente en SQL Server. Estos le permiten ver fácilmente una amplia variedad de metadatos para esta instancia particular de SQL Server, incluida información sobre COLUMNS , ROUTINES , e incluso TABLES .

Puede notar que se devuelven cuatro columnas cuando se usa INFORMATION_SCHEMA.TABLES vista, pero la columna más importante es TABLE_TYPE , que determina si la tabla de esa fila es una tabla real (BASE TABLE ) o una vista (VIEW ).

Para devolver todas las tablas y vistas en una consulta, ejecute la siguiente instrucción TSQL:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

También puede ser conveniente especificar la base de datos que desea consultar:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Si solo desea recuperar tablas reales y filtrar las vistas de los resultados, agregue un WHERE TABLE_TYPE = 'BASE TABLE' cláusula:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE';
GO