Que tal.

Con el SQL Server Management obtnego la siguiente info
CREATE TABLE [dbo].[Alumnos](
   [Alumno_id] [smallint] NOT NULL,
   [Nombre] [nchar](30) NOT NULL,
CONSTRAINT [PK_Alumnos] PRIMARY KEY CLUSTERED
(
   [Alumno_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

------------
CREATE TABLE [dbo].[Pregunta](
   [Pregunta_id] [nchar](1) NOT NULL,
   [Descripcion] [nchar](100) NOT NULL,
CONSTRAINT [PK_Pregunta] PRIMARY KEY CLUSTERED
(
   [Pregunta_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
--------
CREATE TABLE [dbo].[Prueba](
   [Pregunta_id] [nchar](1) NULL,
   [Respuesta_id] [nchar](1) NULL,
   [Alumno_id] [smallint] NOT NULL,
CONSTRAINT [PK_Prueba] PRIMARY KEY CLUSTERED
(
   [Alumno_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

---------------
CREATE TABLE [dbo].[Respuesta](
   [Respuesta_id] [nchar](1) NULL,
   [Descripcion] [nchar](100) NULL
) ON [PRIMARY]

la tabla que guarda las repuestas del alumno es la Tabla Prueba.

Espero sirva. Cualquier sugerencia es bienvenida.

Muchas Gracias.-



Maxi accotto escribió:
Bueno pasame las DDL de las tablas y lo armamos bien!


Maximiliano Damian Accotto
Microsoft MVP en SQLServer
SQL Total Consulting
Bogota 3631 P3B
1407 Buenos Aires-Argentina
Movil: (011)-15-5868-5599
Desde el exterior: (+54-911)-5868-5599
[EMAIL PROTECTED]

-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Martín Gómez
Enviado el: domingo, 16 de noviembre de 2008 09:56 a.m.
Para: Maxi
Asunto: [dbms] Consulta sobre como hacer un Update.

Que tal.
No hay mucho para contar.
Es un ejemplo de Visual Fox, que estoy pasando a sql server, como aprendizaje nada más. En Visual Fox, tengo una función llamada IndexSeek que me permite moverme poor la tabla y buscar registros, por que si encuentro uno con el valor que ingresa el ususario, pregunto si es igual al que estoy modificando, si es asi lo modifico, si no es asi, significa que está repitiendo la respuesta.
Pero en sql server solo se me ocurre hacerlo de la siguiente manera:
    1) Hacer un select con el registro a modificar y cargarlo en variables.
2) Cuando quiera grabar los camobios hacer otro select y determinar la cantidad de ocurrencias encontradas
   3) Si son más de 1, entonces  seguro está repitiendo la respuesta.
4) Pero si es 1, entonces comparo el registro devuelto con el contenido de las variables, si es igual grabo.-
   5) Si no  considero que está repitido el valor.

Se entiende mejor?

Gracias.-

Maxi Accotto escribió:
Hola contanos mas del sistema, pasanos las DDL de las tablas!

2008/11/14 Martín Gómez <[EMAIL PROTECTED]>:
Que tal.

Estoy iniciandome en SQL SERVER, y necesitaría ayuda sobre como realizar
el
siguiente UPDATE

PREGUNTA   DESCRIPCION    RESPUESTA
===================================
A                  DETALLE 1                   V
B                  DETALLE 2                   W
C                  DETALLE 3                   X
D                  DETALLE 4                   Z

La cosigna es la siguiente:
  Si se modifica una pregunta hay que verificar que no se elija alguna
respuesta ya existente.
  Tambien hay que verificar que no se remplaze por una pregunta ya
existente.
  Por ejemplo : si se Modifica la pregunta C (el campo respuesta) No
puede
ingresar  la Respuesta V,W,Z (cualquier otra
letra es válida), y modifica el campo PREGUNTA no puede ingresar ni la A,
ni
la B, ni la C.
 La tabla cuenta con más registros, solo pongo esos datos como ejemplo.-

 Desde ya Muchas Gracias.-


MARTIN.-






No virus found in this incoming message.
Checked by AVG - http://www.avg.com Version: 8.0.175 / Virus Database: 270.9.3/1786 - Release Date: 13/11/2008
06:01 p.m.





Responder a