Información de nombres de restricciones

28/08/2007 - 13:53 por José Luis Capel - Aicom | Informe spam
Hola,

Creo una tabla con 1 campo y un valor por defecto.

CREATE TABLE dbo.Table_2
(
campo1 char(10) NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE dbo.Table_2 ADD CONSTRAINT
DF_Table_2_campo1 DEFAULT 'abc' FOR campo1
GO

Y la pregunta es...

¿Hay alguna sp o función o lo que sea que me devuelva el nombre de una
restricción?
En mi caso quisira saber cuales restricciones tiene una tabla, como se
llaman y a cuales campos afectan.

Gracias por vuestra ayuda,
José Luis Capel
PD: SqlServer 2000 SP4

Preguntas similare

Leer las respuestas

#1 Miguel Egea
28/08/2007 - 14:10 | Informe spam
sql2005
select object_name(id),object_name(constid) from sys.sysconstraints
sql2000
select object_name(id),object_name(constid) from sysconstraints -- sin
probar.

Saludos
Miguel Egea




"José Luis Capel - Aicom" wrote in message
news:
Hola,

Creo una tabla con 1 campo y un valor por defecto.

CREATE TABLE dbo.Table_2
(
campo1 char(10) NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE dbo.Table_2 ADD CONSTRAINT
DF_Table_2_campo1 DEFAULT 'abc' FOR campo1
GO

Y la pregunta es...

¿Hay alguna sp o función o lo que sea que me devuelva el nombre de una
restricción?
En mi caso quisira saber cuales restricciones tiene una tabla, como se
llaman y a cuales campos afectan.

Gracias por vuestra ayuda,
José Luis Capel
PD: SqlServer 2000 SP4

Respuesta Responder a este mensaje
#2 José Luis Capel - Aicom
28/08/2007 - 16:33 | Informe spam
Miguel,


sql2005
select object_name(id),object_name(constid) from sys.sysconstraints
sql2000
select object_name(id),object_name(constid) from sysconstraints -- sin
probar.




Gracias, funciona bien en 2000.

Una cuestión más, si me lo permites,

Haciendo el select

select object_name(constid),object_name(id) from sysconstraints


Aparecen dos columnas. La primera es el nombre de la restricción y la
segunda es el nombre de la tabla.

¿Como puedo averiguar, además, el nombre de la columna y el tipo de
restricción?

Saludos y muchas gracias por tu ayuda.

José Luis Capel
Respuesta Responder a este mensaje
#3 Alejandro Mesa
28/08/2007 - 17:28 | Informe spam
José Luis Capel,

Con el permiso de Miguel. Jose, busca en los libros en linea por las vistas
de sistema INFORMATION_SCHEMA.%, las cuales proveen todo tipo de informacion
sobre las restricciones.

En el caso especial de las restricciones de valor por defecto, esto lo
encontraras en la tabla de sistema SYSCOMMENTS.

use tempdb
go

create table dbo.t1 (
c1 int not null primary key,
c2 int not null default(0)
)
go

select
object_name([id]) as [name],
col_name([id], colid) as [col_name],
[text]
from
dbo.syscomments
where
objectproperty([id], 'IsDefaultCnst') = 1
go

drop table dbo.t1
go


AMB


"José Luis Capel - Aicom" wrote:

Miguel,


> sql2005
> select object_name(id),object_name(constid) from sys.sysconstraints
> sql2000
> select object_name(id),object_name(constid) from sysconstraints -- sin
> probar.
>

Gracias, funciona bien en 2000.

Una cuestión más, si me lo permites,

Haciendo el select

select object_name(constid),object_name(id) from sysconstraints


Aparecen dos columnas. La primera es el nombre de la restricción y la
segunda es el nombre de la tabla.

¿Como puedo averiguar, además, el nombre de la columna y el tipo de
restricción?

Saludos y muchas gracias por tu ayuda.

José Luis Capel






Respuesta Responder a este mensaje
#4 José Luis Capel - Aicom
28/08/2007 - 18:04 | Informe spam
Alejandro,


Con el permiso de Miguel. Jose, busca en los libros en linea por las
vistas
de sistema INFORMATION_SCHEMA.%, las cuales proveen todo tipo de
informacion
sobre las restricciones.



He buscado... pero se ve que no sabía que buscar :-(


En el caso especial de las restricciones de valor por defecto, esto lo
encontraras en la tabla de sistema SYSCOMMENTS.

use tempdb
go

create table dbo.t1 (
c1 int not null primary key,
c2 int not null default(0)
)
go

select
object_name([id]) as [name],
col_name([id], colid) as [col_name],
[text]
from
dbo.syscomments
where
objectproperty([id], 'IsDefaultCnst') = 1
go

drop table dbo.t1
go





La columna col_name, sobre un sqlserver 2000 SP4, me aparece siempre con
valor NULL.

Saludos y gracias por tu ayuda.
José Luis Capel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida