多对多表的插入问题
描述如下:比如有产品对应规格是多对多的关系,表的定义如下Product(ProID,ProName,……);规格Size(SizeId,SizeName,……)中间表ProSize(ID,ProId,SizeId,……);现在规格是比较固定的,在插入Product的同时,怎么实现ProSize的插入?
------解决方案--------------------插入Product成功后,返回ProID,
规格表的内容少的话,就遍历规格表,动态的拼插入ProSize的语句 执行
规格表的内容多的话,可以考虑调用一个存储过程,就不在应用程序里拼语句了
------解决方案--------------------就像楼上说的,首先插入Product表,然后返回一个ID,然后再ProSize表中,插入相对应的规格就行了
------解决方案--------------------为什么你界面不把规格做成下拉框呢?下拉框选项value为SizeId
如果添加新产品:
insert Product返回ProId,
用ProId、SizeId,insert ProSize
如果添加新产品、新规格:
insert Product返回ProId,
insert Size返回SizeId,
用ProId、SizeId,insert ProSize
------解决方案--------------------这个是我以前的一个同时添加两张表数据。
ALTER PROCEDURE [dbo].[T_User_ADD]
@U_Accounts varchar(50),
@U_Pwd varchar(50)
  AS  
	INSERT INTO [T_User](
	[U_Accounts],[U_Pwd]
	)VALUES(
	@U_Accounts,@U_Pwd
	)
IF(@@identity>0)
BEGIN
	INSERT INTO [JTDB].[dbo].[TR_UserConfig]
          ([U_UserId]
          ,[U_UserTypeId]
          ,[I_IntegId]
          ,[D_Id])
    VALUES
          (@@identity
          ,1
          ,1
          ,1)
INSERT INTO T_User (U_Phone)VALUES(@@identity)
END
------解决方案--------------------一楼正解,先插入product,返回productId,然后再中间表中,记录productId,规格型号或其ID即可,看你具体怎么应用
------解决方案--------------------注意开事物