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.

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top