SQL Server 存储过程 遍历数据 修改数据

这里只是举例说明,请以实际情况为准

这里是想修改报警表中的报警时间字段,判断长度修改时间格式

DECLARE @Id INT --数据ID
DECLARE @AlarmTime VARCHAR(10) --时间字符串
DECLARE @AlarmTimeLength INT --时间字符串长度
DECLARE yin_cur CURSOR LOCAL SCROLL FOR --遍历数据
  SELECT AlarmTime, DATALENGTH( AlarmTime ) AS 'AlarmTimeLength' FROM [TableName] --数据表
OPEN yin_cur --打开游标
FETCH NEXT FROM yin_cur INTO @Id, @AlarmTime, @AlarmTimeLength
WHILE @@FETCH_STATUS = 0
BEGIN
  IF(@AlarmTimeLength = 6)
  BEGIN
    SET @AlarmTime = @AlarmTime + '01'
    SET @AlarmTimeLength = @AlarmTimeLength + 2
  END
  IF(@AlarmTimeLength = 8)
  BEGIN
    SET @AlarmTime = CONVERT ( VARCHAR ( 10 ), ( CAST ( CONVERT ( VARCHAR ( 10 ), @AlarmTime, 120 ) AS datetime ) ), 120 ) --时间格式化
    UPDATE [TableName] SET AlarmTime = @AlarmTime WHERE Id = @Id;
    --PRINT @AlarmTime
  END
  FETCH NEXT FROM yin_cur INTO @Id, @AlarmTime, @AlarmTimeLength
END
CLOSE yin_cur --关闭游标
DEALLOCATE yin_cur --释放游标

 

posted @ 2022-07-07 11:32  Mr_Xul  阅读(323)  评论(0)    收藏  举报