محمد کمائی - Telegram : @komayi
محمد کمائی - Telegram : @komayi
خواندن ۱ دقیقه·۴ سال پیش

کوپی و درج رکوردها شبیه رکوردهای قبلی - How to copy data into same table based on existing data in sql

فرض کنید میخواین در جدول 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


sqlservercopy recordssame tableroleAspNetRoleClaims
C# , .net core & angular & blazor , sql server
شاید از این پست‌ها خوشتان بیاید