推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 门户 你问我答 查看内容

[资料表设计] 若insert新资料前,要检查原资料表内是否已有「同一组」的资料 一起帮忙 ...

2021-7-12 17:29| 发布者: admin| 查看: 182| 评论: 0|原作者: admin|来自: 推杨站长网

摘要: 請教大家一個資料表規劃的問題,有一情境: 一筆資料新增到目的地資料表(@Target)之前,要先檢查編號(no)是否已存在, 沒有就直接新增,有就判斷欲插入的Value是否與已存在的Value同一組;...

求教大伙儿一个材料表整体规划的难题,有一情景:

一笔材料增加到到达站材料表(@Target)以前,要先查验序号(no)是不是已存有,
沒有就立即增加,有就分辨欲插进的Value是不是与已存有的Value同一组;

而分辨Value是不是一个组是否要用参照Table(@RefTable)来纪录是不是属於同一组?
像英语的语法中的@RefTable ([Value] char(1), [Group] char(1))那样?
或是说有更合适的作法?

MSSQL英语的语法以下:

--要插进的到达站Table
DECLARE @Target TABLE ([no] char(3), [Value] char(1))
INSERT INTO @Target ([no], [Value]) SELECT '101','A'
INSERT INTO @Target ([no], [Value]) SELECT '102','B'
INSERT INTO @Target ([no], [Value]) SELECT '103','D'
INSERT INTO @Target ([no], [Value]) SELECT '104','F'
INSERT INTO @Target ([no], [Value]) SELECT '105','G'
INSERT INTO @Target ([no], [Value]) SELECT '106','J'
SELECT * FROM @Target

--欲插进的data
SELECT '107','A' --@Target沒有107 => 可插进
SELECT '101','C' --@Target有101,但C与A是同一个Group => 不能插进
SELECT '102','C' --@Target有102,且C与B是不一样Group => 可插进

--排序参照的Table
DECLARE @RefTable TABLE ([Value] char(1), [Group] char(1))

INSERT INTO @RefTable ([Value],[Group]) SELECT 'A', '1'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'B', '2'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'C', '1'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'D', '2'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'E', '3'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'F', '3'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'G', '4'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'H', '2'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'I', '4'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'J', '4'
INSERT INTO @RefTable ([Value],[Group]) SELECT 'K', '1'

SELECT * FROM @RefTable

我能有疑问的地区是预估的@RefTable大约会出现3六千多笔,那样去归类(Group)序号,是否会编到最後自身乱掉?


鲜花

握手

雷人

路过

鸡蛋

最新评论

热门推荐
最新资讯

广告服务|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )|网站地图 | 邮箱:vayae@hotmail.com

GMT+8, 2025-5-1 12:10 , Processed in 0.060007 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部