这样的SQL怎么写,谢谢了!

Rayphrank 2003-05-26 09:27:37
这样一张表
ID 档案号 。。。
1 H0001 。。。
2 H0002 。。。
3 H0003 。。。
4 H0004。。。

客户要求档案号是可以插入的,即
假如表中现在有了4条记录,档案号如上,现在客户要在档案号为H0003的记录前加一条记录,新加入记录的档案号为H0003,而原来的档案号为H0003记录,它的档案号则变成H0004,以下的记录依此类推,就好像档案号是自动编号一样,

这样的修改SQl怎么写阿,有没有好的办法,能让这样的修改速度很快(记录很多)







...全文
61 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-05-27
  • 打赏
  • 举报
回复
你这样的档案号没有意义,能不能用另一字段来控制其顺序,但档案号不一定是这个顺序,

如果你的档案号一直在变,那档案号这个字段存在的意义真是不大。
Rayphrank 2003-05-27
  • 打赏
  • 举报
回复
OK,大力还有很多其他朋友的方法可行,待会给各位分数,

我的程序是这样的,
表名是资料表,每种资料都有一个档案号,档案号是根据表中记录的数量自动产生,档案号的格式在客户那有规定,比如前缀H什么的,只要资料进库,档案号就确定下来,我程序一开始也是这样设计的,只要记录进库,档案号就不能改动了,但客户提出,如果我输了很多资料进去,忽然发现,前面少了一条资料,而且这条资料只能加在前面,那怎么办?

其实我知道这种像各位的处理方法效率不太高,如果有十万条记录,恰好要在第一条记录前插一条记录,那就要修改九万九千九百九十九条记录了,各位有没有别的数据库结构的设计方法??

像这样的情况应该怎样设计数据库?才能使插入或者修改,删除(如果我把前面的资料删除,后面资料的档案号也要更改)的效率高

fyg_02971 2003-05-27
  • 打赏
  • 举报
回复

create trigger tr_insert on table
for insert
as
BEGIN
begin trans
update table set 档案号='H'+right('0000'+cast(right(档案号,4)+1 as varchar(4),4) where 档案号>=@新档案号
insert 表 values(@新档案号,.....)
commit trans
END
ydzqw 2003-05-27
  • 打赏
  • 举报
回复
good
joygxd 2003-05-27
  • 打赏
  • 举报
回复
create trigger tr_insert table
for insert
as
if exists( select 档案号 from table where 档案号=inserted.档案号)
update table set 档案号='H'+cast(right(档案号,4)+1 as varchar(4)) where 档案号>=inserted.档案号


lvcheng606717 2003-05-27
  • 打赏
  • 举报
回复
我觉得可以从新定义档案号的格式,按照所需的方式排序,自动产生增加时通过
触发器来实现。
BBQ 2003-05-26
  • 打赏
  • 举报
回复
支持大力的,真够快的
create procedure InsertDocumentID(@newID varchar(10)) as
BEGIN
begin trans
update DOCTable set DocID='H'+right('0000'+cast(right(档案号,4)+1 as varchar(4),4) where 档案号>=@新档案号
insert 表 values(@新档案号,.....)
commit trans
END
homeness 2003-05-26
  • 打赏
  • 举报
回复
大力的方法很好
可以去试一下
pengdali 2003-05-26
  • 打赏
  • 举报
回复
declare @新档案号 char(5)
set @新档案号='H0003'

begin tran
update 表 set 档案号='H'+right('0000'+cast(right(档案号,4)+1 as varchar(4),4) where 档案号>=@新档案号
insert 表 values(@新档案号,.....)
commit tran
yll6865 2003-05-26
  • 打赏
  • 举报
回复
触发器解决此问题比较合适,做一个更新触发器试试效果吧
ydzqw 2003-05-26
  • 打赏
  • 举报
回复
gz
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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