none
uso de restricciones check RRS feed

  • Pregunta

  • Hola tengo una tabla llamada Credito

    create table Credito(
    Num_Soli int,
    NumIde int,
    NomApeSoli  varchar(30),
    ValSoli int,
    PlaMes int,
    NumPaga int,
    LinCre varchar (25),
    TipoSoli varchar(20),
    primary Key (Num_Soli),
    constraint  CK_LinCre check (LinCre in('Crédito Inmediato','Educación','Educación para el trabajo','Libre Inversión','Recreación','Salud','Servicios Jurídicos','Universitarios','Vivienda')),
    constraint CK_TipoSoli check (TipoSoli in ('Avalista','Aportante'))
    )

    al tratar de ingresar datos

    insert into Credito values (1,0801196001034,'Andrés Avila', 10000,12,01034,'Salud','Aportante')
     insert into Credito values (2,801196010135,' José Raúl Castillo', 20000,12,01035,'Recreación','Avalista')
     insert into Credito values (3,813197801037,'Andrés Avila', 10000,12,01034,'Educación','Aportante')

    el primer ingreso lo acepta bien la restriccion LinCre pero al ingresar la segunda envia un mensaje de conflicto.

    Les agradeceria mucho cualquier

    sábado, 23 de marzo de 2013 16:17

Respuestas

  • Basado en tu ejemplo, el error que recivo esta relacionado con la columna [NumIde], la cual declaras como tipo entero pero esta tiene mas de diez caracteres, cosa que no es possible en transact-sql (el maximo # de digitos es 10 para int).

    Si por ejemplo usamos el tipo de dato "varchar(15)", entonces no hay errors.

    SET NOCOUNT ON;
    USE tempdb;
    GO
    create table dbo.Credito(
     Num_Soli int,
     NumIde varchar(15),
     NomApeSoli  varchar(30),
     ValSoli int,
     PlaMes int,
     NumPaga int,
     LinCre varchar (25),
     TipoSoli varchar(20), 
     primary Key (Num_Soli),
     constraint  CK_LinCre check (LinCre in('Crédito Inmediato','Educación','Educación para el trabajo','Libre Inversión','Recreación','Salud','Servicios Jurídicos','Universitarios','Vivienda')),
     constraint CK_TipoSoli check (TipoSoli in ('Avalista','Aportante'))
    );
    GO
    insert into dbo.Credito values (1,0801196001034,'Andrés Avila', 10000,12,01034,'Salud','Aportante')
    insert into dbo.Credito values (2,801196010135,'José Raúl Castillo', 20000,12,01035,'Recreación','Avalista')
    insert into dbo.Credito values (3,813197801037,'Andrés Avila', 10000,12,01034,'Educación','Aportante')
    GO
    SELECT * FROM dbo.Credito;
    GO
    DROP TABLE dbo.Credito;
    GO


    AMB

    Some guidelines for posting questions...

    sábado, 23 de marzo de 2013 16:49