关于SQL2000中插入多条数据

adam0708 2009-08-23 06:36:40
我现在在做一个订餐的功能,一共有三个表,需要一次插入多条数据。
订单表:order(id,createdate...)
订单详情表:orderdetail(id,dinner_id...)
数据关联:od(order_id,orderdetail_id)

订单表:记录订单的信息

订单详情表:一个订单中,可能有很多个dinner,这些dinner都存在详情表中

数据关联:订单表与详情表的对应关系

现在问题是,插入数据有些麻烦,比如说,生成一个订单,数据有几个dinner,插入三个表中,有什么办法?我也在网上找了下,没有很满意的。插入多条数据可以用XML,不过也不会。。。建议使用临时表。

请大家帮帮忙,谢谢了。

另外,我是用dotnet三层开发的,可是现在传参数也成问题了,据说SQL2008中可以用表做参数,我现在用的是SQL2000,有没有其它解决方法?
...全文
199 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
adam0708 2009-08-23
  • 打赏
  • 举报
回复
吃饭的时候想了下,嗯,先把表并了,再通过程序一条条插入,写个存储过程,插入订单的,返回ID,再插入详情。

不过还是没找到一次性多条数据的。

谢谢各位了。
adam0708 2009-08-23
  • 打赏
  • 举报
回复
不会写。。。就是现在有多条数据,你给弄进数据库,有办法不?

我先去吃饭哈,希望回来后可以解决了。。。谢谢了。
  • 打赏
  • 举报
回复
存储过程的参数都是固定的,又不能传个临时表进去。

-->>什么意思?你可以自己重新写一个啊,思路你可以参考一下,至于解决方法,自己搞定。
adam0708 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 herowang 的回复:]
可以修改下表结构:
详情表(原来的列,订单号)

然后先向订单表中插入数据,在插入数据时使用output子句,获得订单的id
insert into  订单表
output inserted.id into @id
values(……)
获得订单id后,再想详情表中插入其他的数据
[/Quote]

可以考虑,可是怎么传数据呢?存储过程的参数都是固定的,又不能传个临时表进去。
  • 打赏
  • 举报
回复
获得订单id后,再向详情表中插入其他的数据

insert into 详情表
values(1(id),2(红烧肉ID),2(number),""(more) ,@id)

1(id),2(红烧肉ID),2(number),""(more)---直接从界面就可以提取
adam0708 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fredrickhu 的回复:]
不是一一对应关系 建议在前台程序里面去插入
[/Quote]

如果SQL语句没办法解决的话,只能这样了。。。
  • 打赏
  • 举报
回复
可以修改下表结构:
详情表(原来的列,订单号)

然后先向订单表中插入数据,在插入数据时使用output子句,获得订单的id
insert into 订单表
output inserted.id into @id
values(……)
获得订单id后,再想详情表中插入其他的数据
adam0708 2009-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 happyflystone 的回复:]
这个前台程序很容易实现,关键看你用什么工具,

比如 要是用PB的话,就三个DW ,最后一起update就完事了
[/Quote]

工具?用vs2008,就那个三层架构的,怎么update?
--小F-- 2009-08-23
  • 打赏
  • 举报
回复
不是一一对应关系 建议在前台程序里面去插入
adam0708 2009-08-23
  • 打赏
  • 举报
回复
数据:

肉沫茄子 三份 备注:加辣
红烧肉 两份
地址:我家

结果:

订单表:1(id),我家(address),getdate()(createdate)

详情表:
1(id),2(红烧肉ID),2(number),""(more)
2(id),5(肉沫茄子ID),3(number),加辣(more)

数据关联:
1(order_id),1(detail_id)
1(order_id),2(detail_id)
feixianxxx 2009-08-23
  • 打赏
  • 举报
回复
石头 影子。。。

看来没我事了。。 我去吃饭咯
  • 打赏
  • 举报
回复
生成一个订单,数据有几个dinner,插入三个表中,有什么办法?

->>没看明白,你想要表达什么意思,你提取相应的数据插入相应的表不行?
-狙击手- 2009-08-23
  • 打赏
  • 举报
回复
这个前台程序很容易实现,关键看你用什么工具,

比如 要是用PB的话,就三个DW ,最后一起update就完事了
feixianxxx 2009-08-23
  • 打赏
  • 举报
回复
给数电测试数据和你要的结果
adam0708 2009-08-23
  • 打赏
  • 举报
回复
在线等啊,不会都吃饭去了吧???

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧