Voir les résultats réels de commande SQL UPDATE
-
22-10-2019 - |
Question
Y at-il un moyen d'obtenir les résultats réels de commande SQL UPDATE
(à savoir les lignes de la table se ), non seulement obtenir le nombre de lignes (autres que par la conversion du commande UPDATE
à un SELECT
)? J'utilise principalement Postgres et Informix, mais je serais intéressé d'entendre parler d'autres systèmes de bases de données qui ont cette fonctionnalité, ou peut-être un client particulier qui le gère.
La solution
Voici comment vous feriez quelque chose comme ça dans SQL Server. Parce qu'un UPDATE
est essentiellement les anciennes données et les nouvelles données, SQL Server expose les tables dynamiques deleted
et inserted
. Vous pouvez travailler avec eux pour obtenir ce que les données ressemblait avant la UPDATE
, et après la UPDATE
:
update HumanResources.Department
set GroupName = 'Testing Group Name'
output
deleted.DepartmentID as Old_DepartmentID,
inserted.DepartmentID as New_DepartmentID,
deleted.Name as Old_Name,
inserted.Name as New_Name,
deleted.GroupName as Old_GroupName,
inserted.GroupName as New_GroupName
where DepartmentID > 12