Power Builder - Quitar Valor NULL a algunos campos

   
Vista:

Quitar Valor NULL a algunos campos

Publicado por Javier (64 intervenciones) el 27/04/2015 21:11:45
Hola amigos, estoy utilizando PB 12.5 y mi BD la tengo en sql anywhere, le he ido agregando campos a mi BD segun he ido necesitando, desde la opcion Database del powerbuilder, pero cuando agrego campos asi no me deja modificar el valor NULL, y mis campos que he agregado han sido con valor NULL, pero quiero modificar para que no sean NULL, y en el power builder ni en el Sybase Central me deja, ya que en el Sybase Central me da este error:

=====================================================
The column 'total_efectivo' could not be modified in the database.
Column 'total_efectivo' in table 'ventas1' cannot be NULL
[
Sybase][ODBC Driver][SQL Anywhere]Column 'total_efectivo' in table 'ventas1' cannot be NULL
SQLCODE: -195
SQLSTATE: 23000
SQL Statement: ALTER TABLE "DBA"."ventas1" ALTER "total_efectivo" NOT NULL
=============================================

Y Necesito que esos camos sean "NO NULL" ya que son indispensables y a veces por error se hace update sin informacion en esos campos.

Alguien Sabe como quitarle el Valor NULL ???

Adjunto la pantala

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Quitar Valor NULL a algunos campos

Publicado por Jorge (41 intervenciones) el 28/04/2015 16:11:32
Hola, No he trabajado con sql anywhere, pero por sql estandar te diría que si quieres una columna NO NULL tienes que definirla en el momento que creas la columna. Si lo haces despues la sentencia primero verifica que no exista ni un solo NULL en esa columna sino cumple sale error. En tu caso el error salta porque tu quieres convertir la columna a NO NULL pero, como la columna la creaste previamente, los valores de esa columna ya son NULL. Tienes 2 alternativas: O eliminas la columna y la vuelves a crear indicandole que será NO NULL, o haces un update a la columna para asegurarte que no exista ni un solo valor NULL y luego lo cambias a NO NULL.

Me comentas como te fue.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Quitar Valor NULL a algunos campos

Publicado por Javier (64 intervenciones) el 28/04/2015 19:56:56
aaaaah tienes mucha razón, la quiero convertir a NO NULL pero no me deja porque en mis campos hay muchos vacios.

Muchas gracias por la Info, voy a probar una de las 2 opciones y te digo ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Quitar Valor NULL a algunos campos

Publicado por Javier (64 intervenciones) el 28/04/2015 22:08:27
Ya borre esos campos nulos y los volvi a crear, pero me manda un mensaje de que no se pueden agregar como NO NULL, pero si me deja agragarlo como NULL... Entonces no me va aceptar hacer eso.

Voy a tener que hacer la 2da. opción (rellenar todos los campos vacíos para poderles poner valor NO NULL) pero son muchos registros, no habrá un script o una forma de automáticamente poner un "CERO" en esos campos en toooodos los registros?? para no tener que hacerlo de uno en uno.???

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Quitar Valor NULL a algunos campos

Publicado por Jorge (41 intervenciones) el 29/04/2015 16:26:11
Hola, éste update debería funcionar:

UPDATE ventas1 SET total_efectivo = 0 WHERE total_efectivo IS NULL;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Quitar Valor NULL a algunos campos

Publicado por Jorge (41 intervenciones) el 29/04/2015 16:34:39
.. por otra parte, respecto a porqué no funcionó el crear el campo not null, creo que si la tabla ya tiene registros al momento de crear el nuevo campo además de indicarle que sea not null también deberías indicarle el valor por defecto (DEFAULT) que colocará en los registros ya existentes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar