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.
