Maison >base de données >tutoriel mysql >Comment travailler autour de l'erreur de clause de sortie de SQL Server avec les déclencheurs?
Résolution de la limitation de la clause OUTPUT de SQL Server dans les déclencheurs
La restriction de SQL Server concernant l'utilisation de la clause OUTPUT
dans les instructions UPDATE
aux côtés des déclencheurs (entraînant l'erreur 334) peut être contournée.
Solution de contournement efficace :
La solution recommandée consiste à remplacer l'unique instruction UPDATE
par OUTPUT
par un processus en deux étapes : un SELECT
suivi d'un UPDATE
.
<code class="language-sql">-- Fetch the original data before the update SELECT BatchFileXml, ResponseFileXml, ProcessedDate FROM BatchReports WHERE BatchReports.BatchReportGUID = @someGuid; -- Execute the update operation UPDATE BatchReports SET IsProcessed = 1 WHERE BatchReports.BatchReportGUID = @someGuid;</code>
Remarques importantes :
OUTPUT
peut avoir un impact négatif sur les performances, en particulier dans les tables avec des tailles de lignes importantes.OUTPUT
peuvent ne pas toujours correspondre à l'état final de la table après l'exécution du déclencheur. Les déclencheurs modifiant des lignes ou des colonnes d'horodatage peuvent provoquer cet écart.OUTPUT
dans les contextes de déclenchement et d'utiliser des instructions SELECT
et UPDATE
distinctes pour des résultats fiables.Microsoft pourrait résoudre cette limitation de la clause OUTPUT
dans les futures mises à jour de SQL Server.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!