大規模な更新で発生した問題を解決するには、あなたの助けが必要です。こんにちは、開発者/テスター用のサーバーを作成し、本番環境からのコピーを作成したいので、更新を実行した瞬間に生成されたランダムな NSS で NSS を難読化したいので、これを行う関数を作成します処理する。これが更新です:
UPDATE CUSTOMERS SET
NAME = 'John',
LAST NAME ='Doe',
NSS = RandomNSS
plan '(i_scan PK_CUSTOMERS CUSTOMERS)'
テーブルの長さが900万であることを除いて、更新は正常に機能するため、ログが一時停止されるか、ロックされていないというメッセージが表示され、プロセスが終了しないため、次を実装しようとしました:
SET ROWCOUNT 10000
WHILE (1 = 1)
BEGIN
BEGIN TRANSACTION
UPDATE CUSTOMERS SET
NAME = 'John',
LAST NAME ='Doe',
NSS = RandomNSS
plan '(i_scan PK_CUSTOMERS CUSTOMERS)'
IF @@ROWCOUNT = 0
BEGIN
COMMIT TRANSACTION
BREAK
END
COMMIT TRANSACTION
END
SET ROWCOUNT 0
しかし、where 句がないため、すべての顧客の名前が John Doe であっても更新が完了しないため、問題は解決しません。このプロセスを完了するのに役立つクエリを作成するのを手伝ってもらえますか?