• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

|zyciis| 求一个数据库约束写法 一个表 和 另一个表 关联

zyciis736 2008-04-02 05:15:19
如我有表
客人表
ID 姓名 批号
1 小张 P01
2 小王 P02
3 小李 P01
-----------------------------------------
收款表
ID 客人ID 价格 收款批号
1 1 100 Y0001
2 2 200 Y0002
-------------------------
如果我要给客人3收款的时候因为他和客人1是同一个批号那么他的收款批号也要相同
如他收款批号必须为Y0001不然就出错
3 3 200 Y0001

那这条约束要怎么写呢

谢谢

...全文
58 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dawugui 2008-04-02
[Quote=引用 7 楼 zyciis737 的回复:]
我就是因为在程序时面用这些东西来做的话做在人多时做还是会出现重和错乱的啊
我都是用事务做,而且每操作一张表都用 tablockx 来锁死他了
都还是出现这个问题

所以我就想在数据库这里来对他进行判断,
但如果用触发器的话,就算在SQL中当他出现错乱的时候可以改回来
但他通知不了我的ASP.NET程序

所以想用约束的方法来做

谢谢
[/Quote]

建议在ASP.NET中编写代码来完成.
回复
zyciis737 2008-04-02
我就是因为在程序时面用这些东西来做的话做在人多时做还是会出现重和错乱的啊
我都是用事务做,而且每操作一张表都用 tablockx 来锁死他了
都还是出现这个问题

所以我就想在数据库这里来对他进行判断,
但如果用触发器的话,就算在SQL中当他出现错乱的时候可以改回来
但他通知不了我的ASP.NET程序

所以想用约束的方法来做

谢谢
回复
yyyyzzzz_2002 2008-04-02
我讲一下思路:应该可以实现,可以写一个辅助函数,起作用来约束你的逻辑,然后把 收款表
的 收款批号
作为计算列(也就是用那个辅助函数来作为一个列)
回复
zyciis736 2008-04-02
数据库结构不能更改
还有不能写触发器,因为我在我的ASP.NET中 得不到他这里出错的反应
回复
dawugui 2008-04-02
[Quote=引用楼主 zyciis736 的帖子:]
如我有表
客人表
ID 姓名 批号
1 小张 P01
2 小王 P02
3 小李 P01
-----------------------------------------
收款表
ID 客人ID 价格 收款批号
1 1 100 Y0001
2 2 200 Y0002
-------------------------
如果我要给客人3收款的时候因为他和客人1是同一个批号那么他的收款批号也要相同
如他收款批号必须为Y0001不然就出错
3 3 200 Y0001


[/Quote]
这个貌似不好搞.
直接在插入时用代码控制.或用触发器控制.

回复
ojuju10 2008-04-02

程序控制吧,约束写不了
回复
wzy_love_sly 2008-04-02
触发器写
回复
liangCK 2008-04-02
批号决定收款批号?..
再加个表?
客人表(ID,姓名,批号)
收款表(ID,客人ID,价格)
关系(批号,收款批号)
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-02 05:15
社区公告
暂无公告