Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2006
vipernet vipernet is offline
Miembro
 
Registrado: may 2006
Posts: 14
Poder: 0
vipernet Va por buen camino
informacion de columna clave insuficiente

Buenas a todos, les paso a comentar, tengo una tabla, la cual cree sin clave primaria ni nada por el estilo, ya que era una tabla donde los datos jamas se ivan a actulizar y solamente se ivan a ir agregando datos, pero ahora cambio, y tengo que poder dar la opcion de modificarle algunos campos, y el problema salto cuando quise aplicar esta opcion, me saltaba error de falta de columna clave, estuve mirando en los foros por varios dias y la unica opcion para arreglar este problema es agregandole un campo clave. Ahora, es posible agregar un campo clave a una tabla sin perder todos los datos ya cargados, yo cree un campo comun que acepta nulos, pero cuando genero el script para que le vaya agregandole su numero al campo clave de cada fila, en la fila 10 me salta el error de "informacion de columna clave insuficiente o incorrecta, demasiadas filas afectadas por la actualizacion", en sintesis, ahi alguna forma de agregar un campo darle los valores numericos y despues transformar este campo en clave primaria????


Creo que me mande una cagada.... igual ya aprendi.
Responder Con Cita
  #2  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues en teoría si se puede, si lo que quieres es agregar un campo nuevo y darle los valores únicos a cada uno y luego convertirlo en campo llave, pues si, si se puede.

El problema estaría en que quisieras que ese campo llave fuera único y ya existieran registros; en ese caso tendrías que eliminar primero los duplicados para despues poder aplicar la llave.
__________________

Responder Con Cita
  #3  
Antiguo 07-09-2006
vipernet vipernet is offline
Miembro
 
Registrado: may 2006
Posts: 14
Poder: 0
vipernet Va por buen camino
Gracias por la respuesta rapida contraveneno, te comento que en efecto si, lo que quiero hacer hacer del campo es que sea unico, pero primero tengo el problema de que creo el campo, no lo pongo como clave primaria, sino como un campo normal, pero al ir agregandole los numeros, 1, 2, 3, 4.. cuando llega a 10 me sale el maldito cartel de " clave insuficiente o erronea" y para mi es un misterio, es un campo normal, acepta nulos y valores duplicados(por ahora) pero no me deja agregarle valores arriba del numero 9..., nose ya que hacer, tendre que eliminar la tabla, volverla a crear e importarle los datos????
Responder Con Cita
  #4  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿que tipo de dato es ese campo?
__________________

Responder Con Cita
  #5  
Antiguo 07-09-2006
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
Que instruccion utilizastes para agregar el campo?
__________________
Optimus Prime
Responder Con Cita
  #6  
Antiguo 07-09-2006
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
El problema existe porque, como no existen campos unicos,la fila que intentas modificar puede estar repetida, por lo que el motor de base de datos no tiene un mecanismo real para identificar una fila de otra.

Yo te recomendaria a~adir una columna de tipo entero al final de la tabla, y ponerla como autoincremento. Inmediatamente guardes los cambios, se asignaran los valores a la nueva columna, y asi podran ser discriminadas unas de otras cuando intentes hacer alguna operacion de borrado o edicion.

Otra alternativa es usar una columna de tipo uniqueidentifier, y un default value de newid(), pero al final te funcionara de cualquiera de las dos formas.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #7  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
exacto, por eso pregunté que tipo de campo era... si es de cualquier otro tipo que no sea autonumérico o uniqueidentifier, pues habría que poner uno de esos dos.
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
Extraer datos de una pagina en java que tiene clave (sabiendo la clave claro) ;) kalimocho Internet 2 29-06-2005 05:11:24
insuficiente memoria / insuficient memory mmateo25v Conexión con bases de datos 6 23-03-2005 16:46:27
Memoria Insuficiente rogeriobeltran Firebird e Interbase 4 27-12-2004 20:58:54
Memoria insuficiente para iniciar DANY OOP 7 14-12-2003 07:17:18


La franja horaria es GMT +2. Ahora son las 11:10:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi