1.使用游标:

DECLARE @profileId AS BIGINT;
DECLARE C_ProfileID CURSOR FOR SELECT ID FROM dbo.Profile WHERE status<> 'deleted';
OPEN C_ProfileID;
FETCH NEXT FROM C_ProfileID INTO @profileId;
WHILE @@FETCH_STATUS =0
BEGIN
  UPDATE dayreportItemKeyword 
                        SET isNonBid = 1 
                        WHERE
	                    profileId = @profileId 
	                    AND isNonBid = 0 
	                    AND NOT EXISTS ( SELECT 1 FROM Keyword WHERE profileId = @profileId AND keywordText = searchedKeyword  AND matchType <> 'exact');
 FETCH NEXT FROM C_ProfileID INTO @profileId;
END
CLOSE C_ProfileID
DEALLOCATE C_ProfileID


2.使用表变量:

DECLARE @profile TABLE(
profileId BIGINT
);

INSERT INTO @profile(profileId) SELECT ID FROM dbo.Profile WHERE status<> 'deleted';
DECLARE @profileId BIGINT
WHILE EXISTS(SELECT profileId FROM @profile)
BEGIN
SELECT TOP 1 @profileId=  profileId FROM @profile;
PRINT @profileId;
DELETE FROM @profile WHERE profileId=@profileId;
END
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐