Tendras que obtener el nuevo id de tabla1 para insertarlo en la tabla1tabla2, en esta debes insertar los dos id el de la tabla1 y el de la 2 para establecer la relacion entre ambos, como te decia en el mail anterior:
Cita: ...
Como el dato lo recoges del lado cliente y la base de datos esta en el servidor forzosamente tendras que mandar peticiones para hacer los insert a las tablas. Supongo que si puedes llamar un stored y pasarle la pareja de valores el stored puede hacer todo el trabajo y con una sola peticion al servidor pasaras, pero internamente el stored tendrá forzosamente que hacer los insert en las dos tablas.
Tampoco trabajo con SqlServer por tanto no puedo validarte el codigo que pasas, pero yo diria que le faltan cosas
CREATE PROCEDURE dbo.spProcedure
@Dato1 varchar (300),
@Dato2 varchar (100),
@Dato3 varchar (20),
@Dato4 varchar (20),
@IDTabla2 int
AS
INSERT INTO Tabla1
(Dato1, Dato2, Dato3, Dato4)
VALUES (@Dato1, @Dato2, @Dato3, @Dato4)
//Obtener el id que ha generado el insert anterior IDTabla1
INSERT INTO Tabla1Tabla2 (
IDTabla1,IDTabla2)
VALUES (
IDTabla1,@IDTabla2)
no se si el stored te soportara una subconsulta asi
CREATE PROCEDURE dbo.spProcedure
@Dato1 varchar (300),
@Dato2 varchar (100),
@Dato3 varchar (20),
@Dato4 varchar (20),
@IDTabla2 int
AS
INSERT INTO Tabla1
(Dato1, Dato2, Dato3, Dato4)
VALUES (@Dato1, @Dato2, @Dato3, @Dato4)
INSERT INTO Tabla1Tabla2 (
IDTabla1,IDTabla2)
VALUES (
(Select max(idtabla1) from tabla1),@IDTabla2)
El idtabla2 deberia entrar como un parametro igual que el resto de datos, ya que habra mas de uno y el cliente puede elegir qualquiera... no.
Por otro lado si el idtabla1 siempre es nuevo luego la relación N a M nunca se dará!! y si es asi igual tienes un error de diseño. Si me cuentas que estamos haciendo igual te puedo orientar mejor....
Suerte y dime como ha ido.
Quim