Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment définissez-vous la validation automatique dans une session SQL Server ?

Vous pouvez activer l'autocommit en désactivant l'implicite_transactions :

SET IMPLICIT_TRANSACTIONS OFF

Lorsque le paramètre est activé, il revient au mode de transaction implicite. En mode de transaction implicite, chaque modification que vous apportez déclenche une transaction que vous devez valider manuellement.

Peut-être qu'un exemple est plus clair. Cela écrira un changement dans la base de données :

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
COMMIT TRANSACTION

Cela n'écrira pas de modification dans la base de données :

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION

L'exemple suivant mettra à jour une ligne, puis se plaindra qu'il n'y a pas de transaction à valider :

SET IMPLICIT_TRANSACTIONS OFF
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION

Comme Mitch Wheat l'a dit, la validation automatique est la valeur par défaut pour SQL Server 2000 et versions ultérieures.