Sql server 2008 使用更新查询增加特定值

Sql server 2008 使用更新查询增加特定值,sql-server-2008,Sql Server 2008,结果是 select top 1(SUBSTRING(patientid,9,4)) as MaxpatientID from Patient_Data where PatientID like 'AT112013%' order by PatientID desc; 现在是否有可能增加该数字,例如: MaxPatientID 0014 我尝试了这个查询,但不值得使用 0015 0016 0017 感谢您的帮助。我刚刚在mysql中试用过。希望这符合您的要求: update Patient

结果是

select top 1(SUBSTRING(patientid,9,4)) as MaxpatientID from Patient_Data
where PatientID like 'AT112013%' order by PatientID desc;
现在是否有可能增加该数字,例如:

MaxPatientID
0014
我尝试了这个查询,但不值得使用

0015
0016
0017

感谢您的帮助。

我刚刚在mysql中试用过。希望这符合您的要求:

update Patient_Data  set (top 1(SUBSTRING(patientid,9,4)) as MaxpatientID)=(MaxpatientID + 1)
where PatientID like 'AT112013%' order by PatientID desc;
update patientid = SUBSTRING(patientid,0,9)) + convert(varchar(32), convert(int, SUBSTRING(patientid,9,4)) + 1) where patientid like 'AT112013%'

为什么不使用常规的INT标识,但在前端显示时只显示额外的零呢?或者第二个(计算)列使用您的标识列并添加您要查找的零?您只需要更新前1行吗?或者呢?他正在用PatientID更新所有记录,比如“AT112013%”,对于我需要增加的每个交易,该值将在插入记录或更新期间增加,看起来您的样本正在更新。不是吗?请注意,样本增量值没有用零/秒填充
UPDATE test SET patientId = (SELECT patientId
FROM
(
    SELECT CONCAT(SUBSTRING(patientId, 1, 6), CAST(SUBSTRING(patientId, 4, 2) AS UNSIGNED) +1) 
    FROM test
    WHERE `patientId` LIKE 'AT112013%') AS temp
)