Conocer Relaciones entre Tablas.

05/07/2007 - 13:43 por ernessan | Informe spam
Hola a todos:

Como podria recorrer todas las relaciones que tiene una tabla y eliminarlas
mediante codigo T-SQL, no desde el entrepise manager?

Gracias y saludos!


Ernessan

Preguntas similare

Leer las respuestas

#1 Isaias
05/07/2007 - 17:48 | Informe spam
Puedo preguntar, para que quieres eliminar TODAS las relaciones de tus tablas?
Saludos
IIslas


"ernessan" wrote:

Hola a todos:

Como podria recorrer todas las relaciones que tiene una tabla y eliminarlas
mediante codigo T-SQL, no desde el entrepise manager?

Gracias y saludos!


Ernessan



Respuesta Responder a este mensaje
#2 ernessan
05/07/2007 - 18:05 | Informe spam
Hola Isaias:

No quiero eliminar todas las relaciones de todas las tablas. Solo de una.

Puedo preguntar, para que quieres eliminar TODAS las relaciones de tus
tablas?



Porque tengo una tabla mal creada por mi ( no por ningun amigo ni
conocido).
Es decir la tengo relacionada con mas de 150 tablas erroneamente (no me
preguntes porque) y quiero eliminarlas.

Saludos!

Ernesto


"Isaias" escribió en el mensaje
news:
Saludos
IIslas


"ernessan" wrote:

Hola a todos:

Como podria recorrer todas las relaciones que tiene una tabla y
eliminarlas
mediante codigo T-SQL, no desde el entrepise manager?

Gracias y saludos!


Ernessan



Respuesta Responder a este mensaje
#3 ernessan
05/07/2007 - 19:01 | Informe spam
Hola a todos.

Ya se como hacerlo asi que me respondo a mi mismo:

Hola Ernessan,

la solucion idonea es : EXEC sp_fkeys @pktable_name = N'nombre de tabla.'

Te devuelve las foreingn keys que tiene una tabla. Te creas un programita
que las recorre y haces

ALTER TABLE tabla DROP CONSTRAINT foreing key

Saludos y gracias!

Ernessan





"ernessan" escribió en el mensaje
news:

Hola Isaias:

No quiero eliminar todas las relaciones de todas las tablas. Solo de una.

Puedo preguntar, para que quieres eliminar TODAS las relaciones de tus
tablas?



Porque tengo una tabla mal creada por mi ( no por ningun amigo ni
conocido).
Es decir la tengo relacionada con mas de 150 tablas erroneamente (no me
preguntes porque) y quiero eliminarlas.

Saludos!

Ernesto


"Isaias" escribió en el mensaje
news:
Saludos
IIslas


"ernessan" wrote:

Hola a todos:

Como podria recorrer todas las relaciones que tiene una tabla y
eliminarlas
mediante codigo T-SQL, no desde el entrepise manager?

Gracias y saludos!


Ernessan









Respuesta Responder a este mensaje
#4 Isaias
05/07/2007 - 20:58 | Informe spam
Para que NO hagas programas:

CREATE TABLE dropping_constraints
(
cmd VARCHAR(8000)
)

INSERT INTO dropping_constraints
SELECT
'ALTER TABLE [' +
t2.Table_Name +
'] DROP CONSTRAINT ' +
t1.Constraint_Name
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS t1
INNER JOIN
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE t2
ON
t1.CONSTRAINT_NAME = t2.CONSTRAINT_NAME
WHERE t2.TABLE_NAME='your_tablename_goes_here'
DECLARE @stmt VARCHAR(8000)
DECLARE @rowcnt INT
SELECT TOP 1 @stmt=cmd FROM dropping_constraints
SET @rowcnt=@@ROWCOUNT
WHILE @rowcnt<>0
BEGIN
EXEC (@stmt)
SET @stmt = 'DELETE FROM dropping_constraints WHERE cmd ='+
QUOTENAME(@stmt,'''')
EXEC (@stmt)
SELECT TOP 1 @stmt=cmd FROM dropping_constraints
SET @rowcnt=@@ROWCOUNT
END
DROP TABLE dropping_constraints
Saludos
IIslas


"ernessan" wrote:

Hola a todos.

Ya se como hacerlo asi que me respondo a mi mismo:

Hola Ernessan,

la solucion idonea es : EXEC sp_fkeys @pktable_name = N'nombre de tabla.'

Te devuelve las foreingn keys que tiene una tabla. Te creas un programita
que las recorre y haces

ALTER TABLE tabla DROP CONSTRAINT foreing key

Saludos y gracias!

Ernessan





"ernessan" escribió en el mensaje
news:
>
> Hola Isaias:
>
> No quiero eliminar todas las relaciones de todas las tablas. Solo de una.
>
>> Puedo preguntar, para que quieres eliminar TODAS las relaciones de tus
>> tablas?
>
> Porque tengo una tabla mal creada por mi ( no por ningun amigo ni
> conocido).
> Es decir la tengo relacionada con mas de 150 tablas erroneamente (no me
> preguntes porque) y quiero eliminarlas.
>
> Saludos!
>
> Ernesto
>
>
> "Isaias" escribió en el mensaje
> news:
>> Saludos
>> IIslas
>>
>>
>> "ernessan" wrote:
>>
>>> Hola a todos:
>>>
>>> Como podria recorrer todas las relaciones que tiene una tabla y
>>> eliminarlas
>>> mediante codigo T-SQL, no desde el entrepise manager?
>>>
>>> Gracias y saludos!
>>>
>>>
>>> Ernessan
>>>
>>>
>>>
>
>



Respuesta Responder a este mensaje
#5 ernessan
06/07/2007 - 10:17 | Informe spam
Pues sabes lo que te digo:

Que muchas gracias, la verdad, porque esto se me queda lejos de mi
conocimiento con lo cual es cojonudo.
Mas que aprendo.

Saludos y gracias de nuevo!

Ernessan


"Isaias" escribió en el mensaje
news:
Para que NO hagas programas:

CREATE TABLE dropping_constraints
(
cmd VARCHAR(8000)
)

INSERT INTO dropping_constraints
SELECT
'ALTER TABLE [' +
t2.Table_Name +
'] DROP CONSTRAINT ' +
t1.Constraint_Name
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS t1
INNER JOIN
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE t2
ON
t1.CONSTRAINT_NAME = t2.CONSTRAINT_NAME
WHERE t2.TABLE_NAME='your_tablename_goes_here'
DECLARE @stmt VARCHAR(8000)
DECLARE @rowcnt INT
SELECT TOP 1 @stmt=cmd FROM dropping_constraints
SET @rowcnt=@@ROWCOUNT
WHILE @rowcnt<>0
BEGIN
EXEC (@stmt)
SET @stmt = 'DELETE FROM dropping_constraints WHERE cmd ='+
QUOTENAME(@stmt,'''')
EXEC (@stmt)
SELECT TOP 1 @stmt=cmd FROM dropping_constraints
SET @rowcnt=@@ROWCOUNT
END
DROP TABLE dropping_constraints
Saludos
IIslas


"ernessan" wrote:

Hola a todos.

Ya se como hacerlo asi que me respondo a mi mismo:

Hola Ernessan,

la solucion idonea es : EXEC sp_fkeys @pktable_name = N'nombre de tabla.'

Te devuelve las foreingn keys que tiene una tabla. Te creas un
programita
que las recorre y haces

ALTER TABLE tabla DROP CONSTRAINT foreing key

Saludos y gracias!

Ernessan





"ernessan" escribió en el mensaje
news:
>
> Hola Isaias:
>
> No quiero eliminar todas las relaciones de todas las tablas. Solo de
> una.
>
>> Puedo preguntar, para que quieres eliminar TODAS las relaciones de tus
>> tablas?
>
> Porque tengo una tabla mal creada por mi ( no por ningun amigo ni
> conocido).
> Es decir la tengo relacionada con mas de 150 tablas erroneamente (no
> me
> preguntes porque) y quiero eliminarlas.
>
> Saludos!
>
> Ernesto
>
>
> "Isaias" escribió en el mensaje
> news:
>> Saludos
>> IIslas
>>
>>
>> "ernessan" wrote:
>>
>>> Hola a todos:
>>>
>>> Como podria recorrer todas las relaciones que tiene una tabla y
>>> eliminarlas
>>> mediante codigo T-SQL, no desde el entrepise manager?
>>>
>>> Gracias y saludos!
>>>
>>>
>>> Ernessan
>>>
>>>
>>>
>
>



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