sal 字段的批量局部修改

本文介绍了两种批量更新数据库字段值的方法:一种是将表中某字段的后10位字符提取出来,并在前面加上'XXX'进行拼接;另一种是将字段的前5位替换为'SHSW'。这两种方法适用于需要批量修改数据库记录的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

批量取后10位替换之前为"XXX":

update  `book` set reservation_no = concat('XXX', right(book_no, 10));

批量替换前5位为"XXX":

update  `reservation` set reservation_no = concat('SHSW', substr(reservation_no, 5));

-- EXEC SP_HCP請假資料作廢 'Pre250218143','T00024','2025-02-03 08:00:00','2025-02-07 17:00:00','L26' ALTER PROC [dbo].[SP_HCP請假資料作廢] @P_SERNO VARCHAR(20), --請假單號 @P_ID_NO_SZ nvarchar(10), --員工代號(必填) @P_DATETIME_B nvarchar(20), --請假日期時間(起)格式西元YYYY/MM/DD HH24:MI (必填) @P_DATETIME_E nvarchar(20), --請假日期時間(迄)格式西元YYYY/MM/DD HH24:MI (必填) @P_REASON nvarchar(5) -- 假別 (必填) AS BEGIN DECLARE @P_SEGMENT_NO NVARCHAR(10)='9999', --公司id(必填) @P_ERROR_TYPE NVARCHAR(4)='MSG' --訊息類別 'MSG'多語訊息 'CODE'代碼 'FULL' 代碼加訊息 預設為多語訊息 DECLARE @P_ERROR NVARCHAR(1000)='' --錯誤原因 ------------ 向HCP資料庫中INSERT資料 Print '@P_SERNO的值是:' + @P_SERNO Print '@P_ID_NO_SZ的值是:' + @P_ID_NO_SZ Print '@P_DATETIME_B的值是:' + @P_DATETIME_B Print '@P_DATETIME_E的值是:' + @P_DATETIME_E Print '@P_REASON的值是:' + @P_REASON Print '@P_SEGMENT_NO的值是:' + @P_SEGMENT_NO Print '@P_ERROR_TYPE的值是:' + @P_ERROR_TYPE DECLARE @P_DATETIME_B_1 NVARCHAR(30) = CONVERT(VARCHAR, @P_DATETIME_B, 120) DECLARE @P_DATETIME_E_1 NVARCHAR(30) = CONVERT(VARCHAR, @P_DATETIME_E, 120) Print '@P_DATETIME_B_1:' + @P_DATETIME_B_1 Print '@P_DATETIME_E_1:' + @P_DATETIME_E_1 DECLARE @P_DATETIME_B_2 DATETIME = CAST(@P_DATETIME_B_1 AS DATETIME) DECLARE @P_DATETIME_E_2 DATETIME = CAST(@P_DATETIME_E_1 AS DATETIME) --Print '@P_DATETIME_B_2:' + @P_DATETIME_B_2 --Print '@P_DATETIME_E_2:' + @P_DATETIME_E_2 EXECUTE ('BEGIN hcp.P_ABSENCE_DELETE_TW(?,?,?,?,?,?,?); END;', @P_ID_NO_SZ, @P_DATETIME_B_2, @P_DATETIME_E_2, @P_REASON, @P_SEGMENT_NO, @P_ERROR output, @P_ERROR_TYPE ) AT SAL_HCPPROD Print @P_ERROR CREATE TABLE #leaverToHCP_log ( leave_num nvarchar(50), leave_id nvarchar(50), --leave_name nvarchar(30), leave_type nvarchar(50), --reason nvarchar(500), leave_start datetime, leave_end datetime, msg nvarchar(50) ) INSERT INTO #leaverToHCP_log (leave_num, leave_id, --leave_name, leave_type, --reason, leave_start, leave_end, msg) VALUES(@P_SERNO, @P_ID_NO_SZ, @P_REASON, @P_DATETIME_B_2, @P_DATETIME_E_2, @P_ERROR ) INSERT INTO dbo.leaverToHCP_log (leave_num, leave_id, --leave_name, leave_type, --reason, leave_start, leave_end, msg) SELECT leave_num, leave_id, leave_type, leave_start, leave_end, msg FROM #leaverToHCP_log DROP TABLE #leaverToHCP_log END訊息 201,層級 16,狀態 4,程序 SP_HCP請假資料作廢,行 0 [批次開始行 0] Procedure or function 'SP_HCP請假資料作廢' expects parameter '@P_REASON', which was not supplied. 完成時間: 2025-06-09T08:57:29.0058749+08:00
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值