MSSQL 2005 .Iは自動的にトランザクションが完了した後に放出されたか、ロールバックしますトランザクションの開始時にテーブルのロックを取得し、唯一のテーブルをロックオンしていたトランザクションmssql select文を使わずにテーブル全体をロックする方法は?
BEGIN TRANSACTION;
-- get lock
BEGIN TRY
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 BEGIN
ROLLBACK TRANSACTION;
-- release lock
END
END CATCH;
IF @@TRANCOUNT > 0 BEGIN
COMMIT TRANSACTION;
-- release lock
END
GO
の最後でそれを解放したいですか?コマンドが完了すると、あなたは追加しない限り、
UPDATE Users WITH (TABLOCK) SET Username = 'fred' WHERE Username = 'foobar'
ロック、一般的に、(トランザクションがまだ行われていない場合でも)期限切れになります:
取引処理が終了する前にフリーズしていない限り、ロックは自動的に解除されます。しかし、ヒントを特別に設定しない限り、すべてのロックがその長さで持続するわけではありません(コマンドを完了したときに解放されるロックもあります)。 – PinnyM
トランザクション内でテーブルをロックする方法と、他のユーザーからの要求はどうなりますか? – Zahid