0
在存儲過程中,我需要下表圈:在存儲過程你怎麼能循環表A,然後更新表B中
SELECT *
FROM dbo.UsersInRoles
INNER JOIN Application_Users ON UsersInRoles.AppUserID = Application_Users.AppUserID
WHERE (UsersInRoles.ApplicationId = @ApplicationId)
AND (UsersInRoles.RoleId = @CurrentRoleId)
AND (Application_Users.LastLogin < @StartDate)
而對於被循環的每個記錄我需要執行此更新:
UPDATE UsersInRoles
SET UsersInRoles.RoleId = @DenyRoleId
WHERE (UsersInRoles.ApplicationId = @ApplicationId)
AND (UsersInRoles.RoleId = @CurrentRoleId)
如果有更好的方法來執行此操作,那麼我願意提供建議。基本上,第一個查詢根據INNER JOIN
執行過濾器來確定哪些記錄需要更新。然後,這些過濾的記錄將循環並更新爲新的RoleID
。
回答https://stackoverflow.com/questions/1604091/update-a-table-using-join-in-sql-server –
你需要做一個範例以你觀察數據的方式轉移。循環是非常低效的。你必須改變自己的想法,從思考你需要做什麼到某一行,而是想想你需要做什麼。 –