فرض کنید میخواین در جدول AspNetRoleClaims (Id, ControllerName, ActionName, RoleId) که دسترسی اکشن متدهای هر رل ذخیره شده ، از رلی که 100 رکورد در این جدول داره کوپی بگیرین واسه یه رل جدید ، یعنی هر 100 تا دسترسی رل 1 رو به رل 2 بدین و 100 تا رکورد برای رل 2 بزنید.
خب منطقی نیست که 100 بار دستی insert انجام بدیم. باید با نوشتن یه کوئری و اجراش از 100 تا رکورد موجود رل 1 کوپی بگیریم و فقط با تغییر RoleId به رل 2 در جدول insert کنیم.
راه حل :
INSERT INTO AspNetRoleClaims(Id,ControllerName,ActionName,RoleId) SELECT NEWID(),ControllerName,ActionName,'23258fa9-3da5-4666-96cc-bd99f90883a9' -- رل جدید FROM AspNetRoleClaims WHERE RoleId='e32d0e22-d008-4daa-bb21-08d8b611361d' -- رل قبلی
Assume you want to copy 100 records like before records in the same table for new role2 like role1 ControllerName and ActionName:
AspNetRoleClaims (Id, ControllerName, ActionName, RoleId)
It's not comfortable to insert handy 100 records. we should write a script and execute it for insert 100 records like role1 for role2.
Solution :
INSERT INTO AspNetRoleClaims(Id,ControllerName,ActionName,RoleId) SELECT NEWID(),ControllerName,ActionName,'23258fa9-3da5-4666-96cc-bd99f90883a9' -- old role1 FROM AspNetRoleClaims WHERE RoleId='e32d0e22-d008-4daa-bb21-08d8b611361d' -- new role2