¿Cuál es la mejor manera de obtener los nombres de todas las tablas en una base de datos específica en SQL Server?
895
¿Cuál es la mejor manera de obtener los nombres de todas las tablas en una base de datos específica en SQL Server?
SHOW TABLES
(como se usa en MySQL)?Respuestas:
SQL Server 2000, 2005, 2008, 2012, 2014, 2016, 2017 o 2019:
Para mostrar solo tablas de una base de datos particular
O,
PD: para SQL Server 2000:
fuente
WHERE TABLE_TYPE='BASE TABLE'
solo incluirá tablas base (y, por extensión, siempre podría usarWHERE TABLE_TYPE != 'VIEW'
).AND name <> 'sysdiagrams'
.Aquí hay una lista de otros tipos de objetos que puede buscar también:
fuente
SELECT name FROM sysobjects WHERE xtype = 'U'
haría lo mismo.PK,FK,D,C,V,UQ
etc. para comparar la base de datos de origen y destino, pero luego encontré esta característica en VS, pero ¿no hay unasql query
para comparar la base de datos completa de origen y destino?'U'
se usa para identificar la tabla de usuarios ... en lugar de tal vez'UT'
o, la más intuitiva,'T'
... ¡Ah, bueno, esto funciona!O
fuente
O
fuente
SQL Server 2012
fuente
fuente
(SQL Server 2000 estándar; todavía compatible con SQL Server 2005.)
fuente
select * from sysobjects where xtype='U'
fuente
fuente
SELECT name FROM sysobjects WHERE xtype='U' AND name <> 'sysdiagrams';
porque la tabla sysdiagrams, aunque creada por Microsoft SQL Server Management Studio, técnicamente no es una tabla del sistema, sino una que generalmente nos gusta excluir de todos modos.La desventaja
INFORMATION_SCHEMA.TABLES
es que también incluye tablas del sistema comodtproperties
y lasMSpeer_...
tablas, sin forma de distinguirlas de sus propias tablas.Recomendaría usar
sys.objects
(la nueva versión de la vista obsoleta de sysobjects ), que admite excluir las tablas del sistema:fuente
En SSMS, para obtener todos los nombres de tabla totalmente calificados en una base de datos específica (por ejemplo, "MyDatabase"):
Resultados:
fuente
Por favor use esto. Obtendrá nombres de tabla junto con nombres de esquema:
fuente
fuente
Gracias a Ray Vega, cuya respuesta da todas las tablas de usuario en una base de datos ...
sp_helptext muestra la consulta subyacente, que resume a ...
fuente
Bueno, puede usar sys.objects para obtener todos los objetos de la base de datos.
O
fuente
Este enlace puede proporcionar mucha más información sobre este tema.
fuente
El uso
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
también le muestra todas las tablas y columnas relacionadas.fuente