2010-10-22 4 views
10

Nous essayons ici de tester notre nouveau logiciel qui est basé sur SQL 2005. Nous voulons voir comment il va réagir quand l'une des tables que le logiciel utilise lors de l'insertion/mise à jour est verrouillé.Verrouiller la table SQL pendant un certain temps

Y at-il un moyen dans SQL 2005, nous pouvons simuler cela? afin que nous puissions voir comment nous pouvons gérer l'erreur sur le front end?

+0

Ouvrir une transaction dans une connexion interactive qui nécessite la table verrouillée? – Amber

Répondre

5

En utilisant une autre session,

  1. Faites un BEGIN TRANSACTION

  2. Appel UPDATE table set columnName = columnName

  3. Exécutez votre test

  4. Vérifiez vos résultats

  5. COMMIT TRAN/ROLLBACK TRAN la transaction

27

Dans SQL Server Management Studio, exécutez ce script TSQL (timeout de jeu à tout ce qui vous convient)

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 
GO 

BEGIN TRANSACTION 

UPDATE table 
SET ColumnName = ColumnName 

WAITFOR DELAY '00:02:00' -- 2 minutes hh:mm:ss 

-- Run your test while table is locked and delay is counting down 

ROLLBACK TRANSACTION 
+0

alors que la table est verrouillée pendant 2 minutes, toutes les autres transactions attendront 2 minutes sinon elles provoqueront une erreur? – srh

+1

dépend du délai d'attente défini sur la connexion/commande qui émet la requête en attente. –

Questions connexes