Acceso a schema de tablas

21/07/2006 - 09:32 por solusoft | Informe spam
Hola a todos señores y señoras.

Estoy realizando una aplicación en .NET que accede a una base de datos SQL
SERVER.

Se quiere hacer lo siguiente:

Nos indican el nombre de una tabla, y los campos clave (PK, primary Key) de
la tabla,y los valores de la PK de la tabla (correspondientes a un registro).

Se quiere hacer un recorrido en amplitud por todas las tablas relacionadas
con la primera, directa o indirectamente.
Es decir si existen referencias a otras tablas, en relación 1 a muchos.

Si la tabla maestro es A, con claves A1,A2:

Tabla A se relaciona con tabla B, en relación 1 a N, y se "arrastra" la
clave (A1,A2) a la tabla B.
La tabla B tendría como claves A1, B1, y A2 sería FK.


La tabla B se relaciona a su vez con tabla C, en relación 1 a N, y se
"arrastra" la clave (A1,B1) a la tabla C.
La tabla C tendría como claves A1,B1,C1.

Luego a su vez, la tabla B se relaciona con otras dos tablas D y E, también
en relación 1 a muchos. Y estas también se relacionan con otras... y así
digamos tenemos un árbol de dependencias.


Por tanto, quisiera saber cómo puedo determinar las dependencias
(referencias) con otras tablas a partr de una dada y saber si se relacionan
en relación 1 a N (1 a muchos)


Espero que se me haya entendido. También puedo enviarles una parte del
modelo de datos con parte de las tablas con las que queremos trabajar.

Saludos atodos y gracias.

Preguntas similare

Leer las respuestas

#1 Alvaro Mosquera
21/07/2006 - 09:51 | Informe spam
Hola,
Chequea sp_depends en books on line.

"solusoft" escribió:


Hola a todos señores y señoras.

Estoy realizando una aplicación en .NET que accede a una base de datos SQL
SERVER.

Se quiere hacer lo siguiente:

Nos indican el nombre de una tabla, y los campos clave (PK, primary Key) de
la tabla,y los valores de la PK de la tabla (correspondientes a un registro).

Se quiere hacer un recorrido en amplitud por todas las tablas relacionadas
con la primera, directa o indirectamente.
Es decir si existen referencias a otras tablas, en relación 1 a muchos.

Si la tabla maestro es A, con claves A1,A2:

Tabla A se relaciona con tabla B, en relación 1 a N, y se "arrastra" la
clave (A1,A2) a la tabla B.
La tabla B tendría como claves A1, B1, y A2 sería FK.


La tabla B se relaciona a su vez con tabla C, en relación 1 a N, y se
"arrastra" la clave (A1,B1) a la tabla C.
La tabla C tendría como claves A1,B1,C1.

Luego a su vez, la tabla B se relaciona con otras dos tablas D y E, también
en relación 1 a muchos. Y estas también se relacionan con otras... y así
digamos tenemos un árbol de dependencias.


Por tanto, quisiera saber cómo puedo determinar las dependencias
(referencias) con otras tablas a partr de una dada y saber si se relacionan
en relación 1 a N (1 a muchos)


Espero que se me haya entendido. También puedo enviarles una parte del
modelo de datos con parte de las tablas con las que queremos trabajar.

Saludos atodos y gracias.








Respuesta Responder a este mensaje
#2 Alvaro Mosquera
21/07/2006 - 10:01 | Informe spam
Hola de nuevo,

En el post anterior me equivoque : sp_depends no muestra las relaciones fk.

Para ello debes mirar la tabla sysreferences. En books on line viene el
detalle de los campos.

Lo siento.
"Alvaro Mosquera" escribió:

Hola,
Chequea sp_depends en books on line.

"solusoft" escribió:

>
> Hola a todos señores y señoras.
>
> Estoy realizando una aplicación en .NET que accede a una base de datos SQL
> SERVER.
>
> Se quiere hacer lo siguiente:
>
> Nos indican el nombre de una tabla, y los campos clave (PK, primary Key) de
> la tabla,y los valores de la PK de la tabla (correspondientes a un registro).
>
> Se quiere hacer un recorrido en amplitud por todas las tablas relacionadas
> con la primera, directa o indirectamente.
> Es decir si existen referencias a otras tablas, en relación 1 a muchos.
>
> Si la tabla maestro es A, con claves A1,A2:
>
> Tabla A se relaciona con tabla B, en relación 1 a N, y se "arrastra" la
> clave (A1,A2) a la tabla B.
> La tabla B tendría como claves A1, B1, y A2 sería FK.
>
>
> La tabla B se relaciona a su vez con tabla C, en relación 1 a N, y se
> "arrastra" la clave (A1,B1) a la tabla C.
> La tabla C tendría como claves A1,B1,C1.
>
> Luego a su vez, la tabla B se relaciona con otras dos tablas D y E, también
> en relación 1 a muchos. Y estas también se relacionan con otras... y así
> digamos tenemos un árbol de dependencias.
>
>
> Por tanto, quisiera saber cómo puedo determinar las dependencias
> (referencias) con otras tablas a partr de una dada y saber si se relacionan
> en relación 1 a N (1 a muchos)
>
>
> Espero que se me haya entendido. También puedo enviarles una parte del
> modelo de datos con parte de las tablas con las que queremos trabajar.
>
> Saludos atodos y gracias.
>
>
>
>
>
>
>
>
Respuesta Responder a este mensaje
#3 Salvador Ramos
21/07/2006 - 10:13 | Informe spam
Hola,

Este script te permite conocer las FK de tu base de datos
http://www.sqlservercentral.com/scr...p?scriptid48

Si no puedes acceder, deberás registrarte.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Alvaro Mosquera" escribió en el
mensaje news:
Hola de nuevo,

En el post anterior me equivoque : sp_depends no muestra las relaciones
fk.

Para ello debes mirar la tabla sysreferences. En books on line viene el
detalle de los campos.

Lo siento.
"Alvaro Mosquera" escribió:

Hola,
Chequea sp_depends en books on line.

"solusoft" escribió:

>
> Hola a todos señores y señoras.
>
> Estoy realizando una aplicación en .NET que accede a una base de datos
> SQL
> SERVER.
>
> Se quiere hacer lo siguiente:
>
> Nos indican el nombre de una tabla, y los campos clave (PK, primary
> Key) de
> la tabla,y los valores de la PK de la tabla (correspondientes a un
> registro).
>
> Se quiere hacer un recorrido en amplitud por todas las tablas
> relacionadas
> con la primera, directa o indirectamente.
> Es decir si existen referencias a otras tablas, en relación 1 a muchos.
>
> Si la tabla maestro es A, con claves A1,A2:
>
> Tabla A se relaciona con tabla B, en relación 1 a N, y se "arrastra" la
> clave (A1,A2) a la tabla B.
> La tabla B tendría como claves A1, B1, y A2 sería FK.
>
>
> La tabla B se relaciona a su vez con tabla C, en relación 1 a N, y se
> "arrastra" la clave (A1,B1) a la tabla C.
> La tabla C tendría como claves A1,B1,C1.
>
> Luego a su vez, la tabla B se relaciona con otras dos tablas D y E,
> también
> en relación 1 a muchos. Y estas también se relacionan con otras... y
> así
> digamos tenemos un árbol de dependencias.
>
>
> Por tanto, quisiera saber cómo puedo determinar las dependencias
> (referencias) con otras tablas a partr de una dada y saber si se
> relacionan
> en relación 1 a N (1 a muchos)
>
>
> Espero que se me haya entendido. También puedo enviarles una parte del
> modelo de datos con parte de las tablas con las que queremos trabajar.
>
> Saludos atodos y gracias.
>
>
>
>
>
>
>
>
Respuesta Responder a este mensaje
#4 Alejandro Mesa
21/07/2006 - 14:12 | Informe spam
Trata:

select
object_name(sc.constid), -- nombre de la restriccion
object_name(sc.[id]), -- tabla donde se definio
sfk.keyno, -- lugar que ocupa en la lista de columnas que forman la fk
col_name(sfk.fkeyid, sfk.fkey), -- nombre de la columna
object_name(sfk.rkeyid), -- tabla a la que referencia
col_name(sfk.rkeyid, sfk.rkey) -- columna a la que referencia
from
sysconstraints as sc
inner join
sysforeignkeys as sfk
on sc.constid = sfk.constid
where
objectproperty(sc.constid, 'IsForeignKey') = 1
order by
object_name(sc.constid),
object_name(sc.[id]),
sfk.keyno
go


AMB

"solusoft" wrote:


Hola a todos señores y señoras.

Estoy realizando una aplicación en .NET que accede a una base de datos SQL
SERVER.

Se quiere hacer lo siguiente:

Nos indican el nombre de una tabla, y los campos clave (PK, primary Key) de
la tabla,y los valores de la PK de la tabla (correspondientes a un registro).

Se quiere hacer un recorrido en amplitud por todas las tablas relacionadas
con la primera, directa o indirectamente.
Es decir si existen referencias a otras tablas, en relación 1 a muchos.

Si la tabla maestro es A, con claves A1,A2:

Tabla A se relaciona con tabla B, en relación 1 a N, y se "arrastra" la
clave (A1,A2) a la tabla B.
La tabla B tendría como claves A1, B1, y A2 sería FK.


La tabla B se relaciona a su vez con tabla C, en relación 1 a N, y se
"arrastra" la clave (A1,B1) a la tabla C.
La tabla C tendría como claves A1,B1,C1.

Luego a su vez, la tabla B se relaciona con otras dos tablas D y E, también
en relación 1 a muchos. Y estas también se relacionan con otras... y así
digamos tenemos un árbol de dependencias.


Por tanto, quisiera saber cómo puedo determinar las dependencias
(referencias) con otras tablas a partr de una dada y saber si se relacionan
en relación 1 a N (1 a muchos)


Espero que se me haya entendido. También puedo enviarles una parte del
modelo de datos con parte de las tablas con las que queremos trabajar.

Saludos atodos y gracias.








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida