请问 多表的 更新问题

lxmiuamo 2008-04-22 11:40:16
现在做的是仓库管理的项目。数据入库时候,数据的正确性检查后,要进行数据库的更新。
相关的表大概有20个吧,都应该更新。
没有数据库开发的经验,不懂这么多表的更新该怎么处理,要一个表一个表写updata语句吗?
有别的更简单的方法吗?
...全文
140 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
llsus 2008-04-22
  • 打赏
  • 举报
回复
你最好能举一个完整的例子才能找出你的问题
hc8112_boy 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 llsus 的回复:]
每个表的数据肯定都需要单独更新的,但是我奇怪的是用户一个操作你居然需要更新20个不同的表?是不是软件设计上有什么不对的地方?
[/Quote]
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
我是这样理解的,商品信息表是基表,在其上某些字段的组合又产生新表
仓库商品入库时候,商品信息表里存下这个商品的全部信息,相应的派生表也要更新
这样能说通吗?
其实我也是第一次作这样的项目,不理解的地方很多,迷迷糊糊的
要真是一个表一个表写update的话,我要没命了+++++
llsus 2008-04-22
  • 打赏
  • 举报
回复
每个表的数据肯定都需要单独更新的,但是我奇怪的是用户一个操作你居然需要更新20个不同的表?是不是软件设计上有什么不对的地方?
firein 2008-04-22
  • 打赏
  • 举报
回复
一个表一个表写updata语句吧。。
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
确定了
刚问过,问了一大堆问题,每个都要做
原来没想到这点还有这么大的工作量呢
是SQL Server只能一点一点做了
多谢大家了~~
llsus 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lxmiuamo 的回复:]
人家数据库是这样设计的,我也没办法
现在一想头都大了,做下来不疯也差不多了
[/Quote]

如果你确定要有那么多表要填,那只能一个一个的插入,如果是Access数据库,可以通过建立视图,来对视图进行插入。SQLServer的视图是只读的
llsus 2008-04-22
  • 打赏
  • 举报
回复
那个代码中的语句就是列出 T_FZKFLE 表的 所有字段

数据库中的所有用户表的表名都存放在系统表sysobjects中,所有表的所有字段都放在系统表syscomments中,他们通过ID来标识字段属于哪个表
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
人家数据库是这样设计的,我也没办法
现在一想头都大了,做下来不疯也差不多了
llsus 2008-04-22
  • 打赏
  • 举报
回复
你的那些派生表可以用同一个表啊,那有必要用那么多
区分(1),区分(2),寄存者No,品名CD,品名,単量 ,入庫日,入庫NO 搬入NO,免税FLG,,容積

_NET2004 2008-04-22
  • 打赏
  • 举报
回复
疯子,更新20多个表
panxuan 2008-04-22
  • 打赏
  • 举报
回复
写在存储过程内。
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
另外再帮我看一个这段代码吧,里面的SQL语句什么意思,
多谢
Dim OleCmd As OleDb.OleDbCommand = Nothing
Dim OleDR As OleDb.OleDbDataReader = Nothing
Dim strFldNm As String = String.Empty
Dim i As Integer = 0
Dim j As Integer = 0

Try
OleDbConn.Open()
OleCmd = New OleDb.OleDbCommand("", OleDbConn)
OleCmd.CommandText &= "SELECT o.name AS obj_name, c.name AS col_name, TYPE_NAME(c.user_type_id) as type_name"
OleCmd.CommandText &= " FROM sys.objects o JOIN sys.columns c"
OleCmd.CommandText &= " ON o.object_id = c.object_id"
OleCmd.CommandText &= " WHERE o.name = 'T_FZKFLE'"


OleDR = OleCmd.ExecuteReader()

While OleDR.Read
strFldNm = CStr(OleDR.Item("col_name"))
If Not HashData.ContainsKey(strFldNm) Then
HashData.Add(strFldNm, CStr(OleDR.Item("type_name")))
End If
i = i + 1
End While

If i > 0 Then
Return True
Else
Return False
End If
Catch e As Exception
Throw e
End Try
Return True
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
关键现在我是要实现呀,数据库的设计我又不能改
这样只有一个一个表写了?
财富实验室 2008-04-22
  • 打赏
  • 举报
回复
设计问题!
lxmiuamo 2008-04-22
  • 打赏
  • 举报
回复
例如
基表
入库NO,受付No,寄存者No,入庫日,搬入NO,品名CD,品名,船名,規格CD,規格,免税FLG,通関FLG,単量,容積,保管料
派生的表1
区分(1),寄存者No,品名CD,品名,単量
派生的表2
区分(2),寄存者No,品名CD,品名,入庫日,入庫NO
派生的表3
搬入NO,免税FLG,寄存者No,品名CD,品名,入庫日,入庫NO,単量,容積
。。。。
等等
像这样,基表是基本的信息,派生的表用基表的某些字段组成,派生表里还可能包含其他的字段,那些字段的取值是固定的
基表里每添加一行信息,别的表也要产生新的行

这样子要怎么做好,一个表几十个字段呢



16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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