2011-04-12 9 views
10

Estoy revisando esta base de datos y creando las claves foráneas, créame que no existían. Estoy usando SSMS para dejarme saber visualmente qué claves foráneas faltan y también crearlas. ¿Hay alguna configuración para permitir que el diseñador de diagramas muestre si una columna específica ya es parte de una clave externa? Eso me ayudaría a identificar los FK faltantes más rápido.¿Cómo hacer que el Diagrama de la base de datos muestre visualmente claves externas en Management Studio?

Esto es como se mostró actualmente:

Current

Esto es lo que estoy buscando (o algo así):

Desired

Sólo necesito un poco indicador visual (como he visto en otras herramientas) que me muestra si una columna es parte de un FK.

Respuesta

3

En SSMS, si expande el árbol de tablas para su base de datos, expanda la carpeta Columnas, el icono al lado de una columna será una clave plateada/gris si es parte de una relación de clave externa, pero desafortunadamente ganó No te muestra la columna a la que está asignada la columna.

También puede crear un nuevo diagrama en SSMS haciendo clic derecho en la carpeta "Diagramas de base de datos" debajo de su base de datos en el árbol y seleccionando "Nuevo diagrama de base de datos". Obtendrá líneas entre las tablas donde existen claves externas.

También podría utilizar herramientas de terceros para realizar ingeniería inversa de un diagrama a partir de su esquema de base de datos, como Microsoft Visio o Sparx Enterprise Architect.

No estoy seguro de que SSMS Express sea compatible con estas cosas, por lo que puede que no tenga suerte con algo sofisticado o visual.

+1

¿Pero hay alguna manera de mostrar esto en el Diagrama de la base de datos? –

+1

Puede activar las etiquetas de relación haciendo clic con el botón derecho en su diagrama y seleccionando "Mostrar etiquetas de relación". Eso es lo más cerca que puedes llegar, creo. –

+0

Lo he intentado. No es realmente lo que estoy buscando, porque no me ayuda a construir los FK faltantes ... –

3

no he encontrado una manera de hacerlo visualmente en el Management Studio, pero se puede intentar lo siguiente:

select f.name as ForeignKey, OBJECT_NAME(f.parent_object_id) as TableName, 
     COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName, 
     OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName, 
     COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName 
    from sys.foreign_keys f 
     inner join sys.foreign_key_columns fc ON f.OBJECT_ID = fc.constraint_object_id 

esto no es visual, sino que será más rápido para comprobar

+0

Eso me muestra los FK ya creados. Lo que pasa es que necesito conocer los que no se crearon porque estoy creando los FK para esta base de datos. Tengo un buen conocimiento de este DB, así que estoy buscando una forma de ver un indicador visual para los campos en el Diagrama que muestra si un campo es parte de un FK o no. –

4

Sé que esto es una publicación anterior, pero esto puede ayudar a otros.

dentro del Diagrama de la base de datos SSMS haciendo clic derecho en una tabla> luego selecciona "vista de tabla"> luego selecciona "claves" esto solo mostrará PK y FK y todas las otras claves en esa tabla. Bien, digamos que lo necesita en todas las tablas que están bien dentro de SSMS Database Diagram, haga clic en el fondo (sin elementos seleccionados) luego presione "Ctrl + A" para seleccionar todo luego con el mouse sobre una tabla seleccionada haciendo clic derecho> luego seleccione "vista de tabla"> luego seleccione "teclas", esto mostrará PK y FK y todas las demás teclas en cada tabla seleccionada. luego, si necesita ver el conjunto completo de nombres de columna para una tabla determinada, puede cambiar la "vista de tabla" para esa tabla y volver a cambiarla.

Esta forma de ver lo que tiene y lo que no ha conseguido FK ...

Esperamos que esto ayude a otros como lo ha hecho conmigo.

Cuestiones relacionadas