Inserción SQL

29/08/2006 - 17:42 por Marius | Informe spam
Hola a tod@s,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.

Preguntas similare

Leer las respuestas

#1 jcac
29/08/2006 - 17:57 | Informe spam
Hola Marius

Si vas a insertas datos en tu tabla Personas, ya le deberias de indicar los
datos de las otras tablas (coches y carnets), como por ejemplo.

Declare @idPersona int, @idCoche int, @idCarnet int, @FechaCompra datetime
Select @idPersona = 1, @idCoche = 11, @idCarnet = 10, @FechaCompra =
Getdate()
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)

@idCoche = 11 -- se supone que este valor 11 ya estaria ingresado en tu
tabla coches y asi igualmente el valor 10 en la table Carnets, sino existen
estos valores en dichas tablas te mandara un error por clave foreana.

Saludos


"Marius" escribió en el mensaje
news:
Hola a ,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.
Respuesta Responder a este mensaje
#2 Marius
29/08/2006 - 18:12 | Informe spam
Hola jcac,

Por lo cual puedo deducir, que aunque existan relaciones, no hay
ninguna manera "automática" de que dándole unicamente los datos
COCHES.Modelo y CARNETS.Tipo, me busque los id's de cada uno y me cree
dicha inserción en la tabla personas.

Un saludo y gracias por la pronta respuesta.
Marius

PD: Por cierto, aunque ya se que estamos en la news de SQLSERVER,
podrías decirme como sería el comando anterior en SQL (standard).
Gracias..

jcac wrote:
Hola Marius

Si vas a insertas datos en tu tabla Personas, ya le deberias de indicar los
datos de las otras tablas (coches y carnets), como por ejemplo.

Declare @idPersona int, @idCoche int, @idCarnet int, @FechaCompra datetime
Select @idPersona = 1, @idCoche = 11, @idCarnet = 10, @FechaCompra > Getdate()
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)

@idCoche = 11 -- se supone que este valor 11 ya estaria ingresado en tu
tabla coches y asi igualmente el valor 10 en la table Carnets, sino existen
estos valores en dichas tablas te mandara un error por clave foreana.

Saludos


"Marius" escribió en el mensaje
news:
Hola a ,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.
Respuesta Responder a este mensaje
#3 Noldis Chumacero
29/08/2006 - 18:13 | Informe spam
Marius,

Deberías primero insertar la información en COCHES y CARNETS.

Luego harias la consulta de esas tablas para insertar en PERSONAS.

Revisa el los BOL el INSERT.

Saludos



Ing. Noldis Chumacero Ch.
Dpto. Sistemas, AeroSur.
Santa Cruz de la Sierra - Bolivia

"Marius" escribió en el mensaje
news:
Hola a ,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.
Respuesta Responder a este mensaje
#4 jcac
29/08/2006 - 18:32 | Informe spam
Si habria una manera pero no si sea lo mas adecuada.

Seria algo asi, ojo no le probado solo lo he escrito aqui directamente.

Declare @idPersona int, @idCoche int, @idCarnet int, @FechaCompra datetime,
@Modelo Varchar(50), @Tipo Varchar(50)
Select @idPersona = 1, @FechaCompra =Getdate(), @Modelo = 'SEDAN', @Tipo =
'UNICO'
Select @idCoche = idCoche From COCHES Where Modelo = @Modelo
Select @idCarnet = idCarnet From CARNETS Where Tipo = @Tipo
If @IdCoche Is Null
Begin
If @IdCarnet Is Null
Begin
Select @IdCoche = Max(idCoche) From COCHES
Set @IdCoche = @IdCoche + 1
Insert Into COCHES (idCoche, Modelo)
Values (@IdCoche, @Modelo)
Select @IdCarnet = Max(idCarnet) From CARNETS
Set @IdCarnet = @IdCarnet + 1
Insert Into CARNETS (idCarnet, Tipo)
Values (@idCarnet, @Tipo)
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)
End
Else
Begin
Select @IdCoche = Max(idCoche) From COCHES
Set @IdCoche = @IdCoche + 1
Insert Into COCHES (idCoche, Modelo)
Values (@IdCoche, @Modelo)
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)
End
End
Else
Begin
If @IdCarnet Is Null
Begin
Select @IdCarnet = Max(idCarnet) From CARNETS
Set @IdCarnet = @IdCarnet + 1
Insert Into CARNETS (idCarnet, Tipo)
Values (@idCarnet, @Tipo)
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)
End
Else
Begin
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)
End
End

Con respecto de SQL Standart alli me agarras, ya que desconosco, pero esto
deberia de funcionar en T-SQL, sino me equivoco creo que cumple con el ANSI
SQL

Saludos

"Marius" escribió en el mensaje
news:
Hola jcac,

Por lo cual puedo deducir, que aunque existan relaciones, no hay
ninguna manera "automática" de que dándole unicamente los datos
COCHES.Modelo y CARNETS.Tipo, me busque los id's de cada uno y me cree
dicha inserción en la tabla personas.

Un saludo y gracias por la pronta respuesta.
Marius

PD: Por cierto, aunque ya se que estamos en la news de SQLSERVER,
podrías decirme como sería el comando anterior en SQL (standard).
Gracias..

jcac wrote:
Hola Marius

Si vas a insertas datos en tu tabla Personas, ya le deberias de indicar
los
datos de las otras tablas (coches y carnets), como por ejemplo.

Declare @idPersona int, @idCoche int, @idCarnet int, @FechaCompra datetime
Select @idPersona = 1, @idCoche = 11, @idCarnet = 10, @FechaCompra > Getdate()
Insert Into Personas (idPersona, idCoche, idCarnet, FechaCompra)
Values (@idPersona, @idCoche, @idCarnet, @FechaCompra)

@idCoche = 11 -- se supone que este valor 11 ya estaria ingresado en tu
tabla coches y asi igualmente el valor 10 en la table Carnets, sino
existen
estos valores en dichas tablas te mandara un error por clave foreana.

Saludos


"Marius" escribió en el mensaje
news:
Hola a ,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.
Respuesta Responder a este mensaje
#5 Maxi
29/08/2006 - 18:33 | Informe spam
Hola, Marius, tu consulta depende de muchos factores, el principal saber si
las tablas tienen o no Foreign Key. Suponiendo que lo tienen entonces los
valores del coche y carnet de una persona que quieras insertar debe ser
valido contra las tablas correspondientes.
La segunda parte no te la entiendo, vos tendras una aplicacion que tiene un
campo a llenar con el numero de cohe por ej, ese campo (un combo quizas) lo
podrias llenar con los datos de la tabla correspondiente, pero esto es muy
variable y depende del tipo de aplicacion, no hay una sola receta


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Marius" escribió en el mensaje
news:
Hola a ,
La verdad es que mi nivel de SQL es justito, así que agradecería que
alguien me ayudase con la siguiente consulta.

Tengo 3 Tablas:

[PERSONAS] { idPersona, idCoche, idCarnet, FechaCompra }
donde {idCoche} referencia a COCHES(idCoche)
donde {idCarnet} referencia a CARNETS{idCarnet}

[COCHES] { idCoche, Modelo }

[CARNETS] { idCarnet, Tipo}

¿Como puedo realizar una inserción en la tabla PERSONAS teniendo como
datos el modelo del coche y el tipo de carné?
¿He de realizar primero consultas a las tabla de COCHES y CARNETS para
obtener los Id's o ésto último lo resuelve las relaciones creadas?

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida