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