控制如下数据交叉的语句怎么写?

langeclc 2003-09-24 05:29:26
现有如下数据表
物品代码,检测项目 规格下限, 规格上限,整数位数, 小数位数
建立以上表的目的是根据物品代码,检测项目,和规格范围,控制输入界面的检测数据的整数位数和小数。
比如 物品螺纹钢l 屈服强度检测,要求直径d , 10=<d<=20 整数位数为 3,小数位数为 2 ,现在问题是当我建立标准库的时候输入如下一条标准:
L (代码) 屈服强度, 12 , 20 , 3, 2
继续输入第二条以至 n 条,保证不能出现规格范围交叉情况,既对于某一具体规格 比如 14 只能输入一条合法的标准,标准库里面还有这样的一条记录:
L (代码) 屈服强度 12 16 4, 3

这样的话就不知道输入是整数位数到底是3还是4,小数位数到底是2还是3
录入标准的时候怎么控制啊?
以下我举列输入合法和不合法的情况:
L , 屈服强度 , 14 , 20 , 2 , 2 (第一条怎么都是合法的)
L ,屈服强度 , 12 , 16 , 3 , 2 不合法
L ,屈服强度 , 16 25 , 4 , 3 不合法
哎,说明白了吗? 既对于定义的规格区间不能重叠啊!
...全文
23 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
langeclc 2003-09-25
  • 打赏
  • 举报
回复
txlicenhe:
你写的好象正确,对插入的操作我也是采用相似的方法,但是对于修改情况怎么处理?
langeclc 2003-09-25
  • 打赏
  • 举报
回复
修改怎么办?
leimin 2003-09-24
  • 打赏
  • 举报
回复
好像表的结构有问题:
规格下限/ 规格上限和整数位数/ 小数位数有何关系?
测试规格和实际数据是否应该分开??

而且每次INSERT都用TRIGGER验证效率太低!
leimin 2003-09-24
  • 打赏
  • 举报
回复
好像表的结构有问题:
规格下限/ 规格上限和整数位数/ 小数位数有何关系?
测试规格和实际数据是否应该分开??

而且每次INSERT都用TRIGGER验证效率太低!
subbee 2003-09-24
  • 打赏
  • 举报
回复
用触发器
txlicenhe 2003-09-24
  • 打赏
  • 举报
回复
CREATE TRIGGER 名1 ON 数据表
FOR INSERT
AS
if Exists(
Select * from inserted a
where Exists(Select * from 数据表 where a.规格下限 between 规格下限 and 规格上限)
or Exists(Select * from 数据表 where a.规格上限 between 规格下限 and 规格上限)
)
Raiserror('有不合法数据!!!',16,1)
Rollback
hdslah 2003-09-24
  • 打赏
  • 举报
回复
觸發器
pengdali 2003-09-24
  • 打赏
  • 举报
回复
CREATE TRIGGER 名1 ON 数据表
FOR INSERT
AS
if exists(select 1 from inserted tem where exists(select 1 from 数据表 where 物品代码=tem.物品代码 and 检测项目=tem.物品代码 and (小数位数<>tem.小数位数 or 整数位数<>tem.整数位数 or 规格下限>tem.规格下限 or 规格上限<tem.规格上限)))
rollback tran
txlicenhe 2003-09-24
  • 打赏
  • 举报
回复
没看清,等下再慢慢看。

22,294

社区成员

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

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