Мисля, че изявлението за сливане е по-бързо от това, което демонстрирате по вашите 2 начина. ако трябва да научите повече за това как да напишете MERGE INTO Query в sql сървър, моля, следвайте връзките.
https://www.simple-talk.com/sql/learn-sql-server/the-merge-statement-in-sql-server-2008/
и вашият блок за сливане изглежда така, трябва да го поставите в процедурата на магазина или на други места.
MERGE INTO SHARE_AD_GROUP A
USING (
SELECT SHARE_AD_GROUP_ID,
SHARE_ID,
AD_GROUP,
SHARE_PERMISSIONS
FROM SHARE_AD_GROUP
WHERE SHARE_ID = @shareID AND AD_GROUP = @ownerId
) B ON (A.SHARE_AD_GROUP_ID = B.SHARE_AD_GROUP_ID)
WHEN MATCHED THEN
UPDATE SET A.SHARE_PERMISSIONS = B.SHARE_PERMISSIONS
WHEN NOT MATCHED THEN
INSERT (SHARE_PERMISSIONS) VALUES(@sharePermissions);