如何在T-SQL中编写等效的SQL脚本?SQL Server脚本遍历每条记录并更新它
我已经在MS Access中编写了这段代码来编辑记录 - 我怎么能在SQL Server中做同样的事情?
对于J_CaseNum
和J_Index J_PersonIndex
的每个组合需要增加。对于给定的组合,可以有从1到50人的任何地方。
Dim rs As Recordset
Dim rs1 As Recordset
Dim i As Long
Dim s As String
sql = "Select J_CaseNum, J_Index, J_VehicleIndex, J_PersonIndex, J_CaseNo, J_PersonID, Ind_Last_NM from dbo_DCIPS Order By J_CaseNum, J_Index, Ind_Last_NM"
Set rs = CurrentDb.OpenRecordset(sql)
Set rs1 = CurrentDb.OpenRecordset(sql)
rs.MoveLast
cnt = rs.RecordCount
rs.MoveFirst
i = 0
SysCmd acSysCmdInitMeter, "_", cnt
While Not rs.EOF
If i = 0 Then
rs.Edit
rs!J_PersonIndex = "01"
rs!J_CaseNo = rs!J_CaseNum & rs!J_Index
rs!J_PersonID = rs!J_CaseNo & rs!J_VehicleIndex & rs!J_PersonIndex
rs.Update
j = 1
i = 1
rs.MoveNext
Else
If (rs1!J_CaseNum = rs!J_CaseNum) And (rs1!J_Index = rs!J_Index) Then
j = j + 1
s = j
rs.Edit
rs!J_PersonIndex = Right("00" + s, 2)
rs!J_CaseNo = rs!J_CaseNum & rs!J_Index
rs!J_PersonID = rs!J_CaseNo & rs!J_VehicleIndex & rs!J_PersonIndex
rs.Update
rs.MoveNext
rs1.MoveNext
Else
j = 1
s = j
rs.Edit
rs!J_PersonIndex = Right("00" + s, 2)
rs!J_CaseNo = rs!J_CaseNum & rs!J_Index
rs!J_PersonID = rs!J_CaseNo & rs!J_VehicleIndex & rs!J_PersonIndex
rs.Update
rs.MoveNext
rs1.MoveNext
End If
End If
i = i + 1
SysCmd acSysCmdUpdateMeter, i
If (i Mod 1000) = 0 Then Stop
Wend
在此先感谢
什么是你的问题/什么是你遇到的麻烦现有的表? SO不是代码写入服务。 –
组合可以重复吗?还是它们是唯一的?你想让J_PersonIndex成为一个静态数字,还是每次查询都会产生? –
J_PersonIndex将是一个静态值。这是一次性更新。 – Draco