Estoy trabajando en un desarrollo con más de 700 tablas. Necesito ver una lista de todas las tablas relacionadas a una tabla dada. ¿Me puede recomendar una aplicación que pueda proporcionar tal cosa?Encontrar todas las tablas relacionadas en una tabla determinada
Respuesta
Si su base de datos es compatible con las vistas de esquema de información (la mayoría lo hace), entonces se puede ejecutar esta consulta:
SELECT
c.CONSTRAINT_NAME,
cu.TABLE_NAME AS ReferencingTable, cu.COLUMN_NAME AS ReferencingColumn,
ku.TABLE_NAME AS ReferencedTable, ku.COLUMN_NAME AS ReferencedColumn
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS c
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
ON cu.CONSTRAINT_NAME = c.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku
ON ku.CONSTRAINT_NAME = c.UNIQUE_CONSTRAINT_NAME
Esta es la salida de una lista de todas las restricciones de referencia (clave externa), la fuente (referencia) tabla/columna, y tabla/columna de clave principal (referenciada).
Si desea ver referencias a una tabla específica, sólo tiene que añadir:
WHERE ku.TABLE_NAME = 'SomeTable'
¿Es posible seleccionar un solo registro y todos sus registros relacionados de esta manera en el servidor sql? – codemonkeyliketab
@codemonkeyliketab haciendo las preguntas importantes – Kristopher
Dependiendo del producto de base de datos, usted debería ser capaz de consultar los INFORMATION_SCHEMA
vistas de este modo:
Select FK.TABLE_SCHEMA, FK.TABLE_NAME
From INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS As RC
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As PK
On PK.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As FK
On FK.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
Where PK.TABLE_SCHEMA = 'dbo'
And PK.TABLE_NAME = '<target table name>'
MS Visio Pro puede hacer un buen trabajo de ingeniería inversa un esquema db para una variedad de bases de datos (a través de ODBC) y proporciona un diagrama que es muy flexible.
Advertencia: Independientemente del sistema que utilice, no desea extraer todas las 700 tablas a la vez. Intenta crear varios diagramas agrupados y separados lógicamente. Es de esperar que haya muchas agrupaciones de este tipo en una base de datos tan grande.
Lamentablemente, esta característica increíble se eliminó en 2013. 2010 fue la última versión con él. – jleach
Puede probar esto:
SELECT *
FROM
KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'your_table_name'
AND REFERENCED_COLUMN_NAME = 'your_column_id'
AND TABLE_SCHEMA = 'your_database_name';
Solución simple y más fácil de obtener los correspondientes cuadros de tabla dada utilizando el procedimiento incorporado.
exec sp_fkeys 'Your_PK_TABLE_NAME'
Gran respuesta ... – brijrajsinh
Sintaxis incorrecta cerca de 'IR'. ¿Dónde me estoy equivocando aquí? –
@Marimba, Amablemente elimine Go; de declaración y ejecución. –
- 1. Lista de todas las tablas con una relación con una tabla o vista determinada
- 2. ¿Cómo encontrar todas las clases que implementan una interfaz determinada?
- 3. Insertar SQL en tablas relacionadas
- 4. encontrar todas las tablas no referenciadas en los procedimientos almacenados
- 5. Cómo unir varias tablas relacionadas por otras tablas
- 6. Consulta dos tablas relacionadas (Uniones)
- 7. Tablas de base de datos, una tabla que hace referencia a varias tablas no relacionadas
- 8. Seleccionar de todas las tablas
- 9. ORMLite restablecer todas las tablas
- 10. MySQL OPTIMIZE todas las tablas?
- 11. Psql enumera todas las tablas
- 12. Buscar todas las subcadenas (en inglés) de una cadena determinada
- 13. Reparar todas las tablas de una vez
- 14. En MySQL, ¿cómo puedo dividir una tabla existente en muchas tablas nuevas relacionadas?
- 15. Establecer IDENTITY_INSERT OFF para todas las tablas
- 16. Omitir todas las tablas comando
- 17. Buscar todas las columnas de una tabla para un valor?
- 18. ¿Cómo truncar todas las tablas de usuario?
- 19. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 20. Obtener todas las columnas de todas las tablas MySQL
- 21. cómo encontrar archivos en una rama determinada
- 22. ¿Está consultando la base de datos de información de MySQL una buena manera de encontrar tablas relacionadas?
- 23. ¿Ve todas las tablas que tienen claves foráneas a cierta columna en una tabla?
- 24. Uso tablediff de comparar todas las tablas
- 25. Listar todas las tablas en postgresql information_schema
- 26. ¿Agregar una columna si no existe para todas las tablas?
- 27. Obtener todas las filas en la tabla "actual", y no desde las tablas secundarias
- 28. Quiero valor específico de búsqueda en todas las columnas de todas las tablas en Oracle 11g
- 29. Listar todas las tablas en una base de datos
- 30. Eliminar todas las filas de una tabla, arroja nullpointer
¿Qué versión/marca de SQL? Si es de Microsoft, Management Studio puede crear un Diagrama ... –