Probleme d'execution d'une requete dans un lot transact SQL
Fermé
SFanchy
-
6 mai 2022 à 15:06
jee pee Messages postés 39899 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 juillet 2024 - 6 mai 2022 à 16:23
jee pee Messages postés 39899 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 juillet 2024 - 6 mai 2022 à 16:23
A voir également:
- Probleme d'execution d'une requete dans un lot transact SQL
- Faire un lot sur vinted - Guide
- Faire une offre sur un lot vinted - Guide
- Votre envoi est annoncé dans un lot remis par l'expéditeur et en cours de prise en charge. - Forum Vos droits sur internet
- Erreur d'execution 1004 ✓ - Forum VB / VBA
- Récupération serveur sql - Télécharger - Gestion de données
1 réponse
jee pee
Messages postés
39899
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
2 juillet 2024
9 246
Modifié le 6 mai 2022 à 16:29
Modifié le 6 mai 2022 à 16:29
Bonjour,
Je ne pratique pas spécialement sql server. Mais une particularité, de truncate, c'est que c'est un ordre de type DDL (Data Definition Language) , comme le create table ou le drop table. Alors qu'un delete est un ordre de type DML (Data Manipulation Language), comme insert, update.
Un ordre de type DDL est auto commit, non loggé, et non réversible. Alors que du DML entre 2 points d'arrets, peut être annulé, avant un commit, par un rollback.
Comme ce que tu appeles un lot transactionnel doit être un ensemble cohérent, où tout doit être exécuté, ou pas, donc avec en fin un potentiel rollback pour tout annuler en cas d'erreur, le truncate table vient perturber cette logique, en réalisant un commit au milieu de ta séquence.
Je ne pratique pas spécialement sql server. Mais une particularité, de truncate, c'est que c'est un ordre de type DDL (Data Definition Language) , comme le create table ou le drop table. Alors qu'un delete est un ordre de type DML (Data Manipulation Language), comme insert, update.
Un ordre de type DDL est auto commit, non loggé, et non réversible. Alors que du DML entre 2 points d'arrets, peut être annulé, avant un commit, par un rollback.
Comme ce que tu appeles un lot transactionnel doit être un ensemble cohérent, où tout doit être exécuté, ou pas, donc avec en fin un potentiel rollback pour tout annuler en cas d'erreur, le truncate table vient perturber cette logique, en réalisant un commit au milieu de ta séquence.