DECLARE @tabla AS NVARCHAR(10)
SELECT @tabla='empleado'
SELECT S.[name],restricciones.COLID,object_name(constid) AS constrain,
tabla.name AS tabla
  FROM sys.sysconstraints AS restricciones
INNER JOIN sysobjects AS tabla ON restricciones.ID=tabla.id
INNER JOIN syscolumns s ON S.id=tabla.id
WHERE (tabla.[nam...@tabla
AND restricciones.COLID=S.colid) --OR (tabla.[name]='empleado' AND
restricciones.colid=0)
UNION
SELECT SPACE(10),0 COLID,object_name(constid) AS CONSTRAIN,@TABLA  FROM
SYS.sysconstraints s
WHERE COLID=0 AND object_name(ID)=...@tabla


El 26 de marzo de 2010 11:45, Alejandro Paciotti Iacchelli <
[email protected]> escribió:

>
>
> Prueba
>
> *De:* [email protected] [mailto:[email protected]] *En nombre de *Amaro Silva
> *Enviado el:* Viernes, 19 de Marzo de 2010 03:04 p.m.
> *Para:* GUFA List Member
> *Asunto:* [GUFA] Fwd: OT Sql
>
>
>
>
>
> Si no me equivoco con esto vas a poder ver todas las constraint con su
> nombre de una tabla capaz te sirva:
>
> SELECT restricciones.name AS constrain,tabla.name AS tabla FROM sysobjects
> AS restricciones
> INNER JOIN sysobjects AS tabla ON restricciones.parent_obj=tabla.id
> WHERE tabla.[name]='empleado'
> and restricciones.xtype IN ('D','F','PK','UQ','FK','C')
>
>
> El 19/03/2010 12:38, PabloC <[email protected]> escribió:
>
>
> >
> >
> >
> >
> > Ahora entendi, gracias por la aclaración
> >
> > No te sirve lo que respondió Alejandro?
> >
> >
> >
> >
> >
> > Saludos
> >
> > PabloC
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > De:
> > [email protected] [mailto:[email protected]] En nombre de Massetti Sebastian
> >
> > Enviado el: Viernes, 19 de Marzo de 2010 12:22
> >
> > Para: GUFA List Member
> >
> > Asunto: [GUFA] OT Sql
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Tengo que buscar todos los
> > campos cuyo nombre sea o empiece con “idprovincia” en todas las
> > tablas que contengan dicho campo, en 86 bases de datos diferentes.
> >
> > Ese tipo de cambios implica que
> > las constrains en cada tabla y en cada base seguramente tengan distinto
> nombre.
> >
> > No es tan simple como correr el
> > scrip que SQLSERVER me muestra para ese campo y esa tabla en particular,
> se
> > trata de borrar masivamente constraints a las que no les conozco el
> nombre
> >
> > Eso se puede hacer perfectamente
> > en SQL 2000 porque puedo conocer con un query el nombre de cada
> constraint pero
> > en sql2005 se me complicó.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > De:
> > [email protected] [mailto:[email protected]] En nombre de PabloC
> >
> > Enviado el: Viernes, 19 de Marzo de 2010 11:23 a.m.
> >
> > Para: GUFA List Member
> >
> > Asunto: [GUFA] OT Sql
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > No, no lo entiendo
> >
> > Si vas a modificar 1500 campos y
> > el script generado te muestra como hacerlo y también borra cada
> constrain, no
> > entiendo cual es el problema. Perdona pero no lo comprendo
> >
> >
> >
> >
> >
> > Saludos
> >
> > PabloC
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > De:
> > [email protected] [mailto:[email protected]] En nombre de Massetti Sebastian
> >
> > Enviado el: Viernes, 19 de Marzo de 2010 10:55
> >
> > Para: GUFA List Member
> >
> > Asunto: [GUFA] OT Sql
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Pablo:
> >
> > El tema es el siguiente, se
> > trata de modificar masivamente 1500 campos, el script que genera el motor
> > muestra claramente lo que hace, pero justamente mi problema es emular
> como
> > borrar cada constraint sin conocer su nombre, el motor cuando genera el
> script
> > directamente borra las constraint por su nombre lo cual no conozco.
> >
> > Se entiende ?
> >
> > Gracias.
> >
> > Sebastian
> >
> >
> >
> >
> >
> > De:
> > [email protected] [mailto:[email protected]] En nombre de PabloC
> >
> > Enviado el: Viernes, 19 de Marzo de 2010 09:59 a.m.
> >
> > Para: GUFA List Member
> >
> > Asunto: [GUFA] OT Sql
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Hola Sebastian, porque no hace
> > algo mas simple
> >
> > Desde el Enterprise manager para
> > SQL2000 o el SQL Server Management Studio para 2005/08 modifica los
> campos de
> > la tabla que desees y después antes de confirmar decile que te genere el
> Script
> > de modificación, ahí vas a ver como lo hace el motor
> >
> >
> >
> >
> >
> > Saludos
> >
> > PabloC
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > De:
> > [email protected] [mailto:[email protected]] En nombre de Massetti Sebastian
> >
> > Enviado el: Viernes, 19 de Marzo de 2010 09:45
> >
> > Para: GUFA List Member
> >
> > Asunto: [GUFA] OT Sql
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Hola Lista:
> >
> > Necesito cambiar   el tipo de datos de varias
> > columnas de varias tablas  (por ejemplo de INT a TINYINT) para lo cual
> > utilizo ALTER COLUMN pero previo a eso tengo que eliminar todas las
> constrains
> > ya que el ALTER COLUMN falla si hay constrains para ese campo.
> >
> > A lo mejor estoy haciéndolo mal y hay una forma más sencilla
> > de cambiar los tipos de datos si tener que borrar previamente las
> constraints.
> >
> >
> >
> > En SQL2000 bastaba con ver la tabla SYSOBJECTS donde
> > XTYPE=’D’ , PARENT_OBJ= (id de la tabla) y la columna
> > SYSOBJECTS.INFO me indicaba el nro ordinal del campo según el diseño de
> la
> > tabla.
> >
> > Con esto yo consulto bien las constrains que tiene un campo
> > y las puedo borrar con un DROP.
> >
> >
> >
> > En SQL2005, la columna SYSOBJECTS.INFO está vacia y no tengo
> > forma de identificar las constraints.
> >
> > Alguien sabe de que forma puedo consultar esto ? o mejor aún
> > como cambiar el tipo de datos más directamente ?
> >
> >
> >
> > Desde ya muchas gracias.
> >
> > Sebastian.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > __________ NOD32 4952 (20100317) Information __________
> >
> >
> >
> > This message was checked by NOD32 antivirus system.
> >
> > http://www.eset.com
> >
> >
> >
> >
> >
> > __________ NOD32 4952 (20100317) Information __________
> >
> >
> >
> > This message was checked by NOD32 antivirus system.
> >
> > http://www.eset.com
> >
> >
> >
> >
> >
> >
>
>
>
>
> --
> Amaro Silva.
>



-- 
Amaro Silva.

Responder a