Je suis très heureux à l'aide de *
dans les déclencheurs d'audit.
Dans ce cas, il peut effectivement être un avantage, car il permettra de s'assurer que si des colonnes sont ajoutées à la base de la table, il déclenche une erreur donc il ne faut pas oublier de gérer cela à la vérification de déclenchement et/ou de la vérification de structure de table.
(Comme dotjoe) je suis également heureux de l'utiliser dans les tables dérivées et de la colonne d'expressions de table. Si j'ai habituellement le faire dans l'autre sens.
WITH t
AS (SELECT *,
ROW_NUMBER() OVER (ORDER BY a) AS RN
FROM foo)
SELECT a,
b,
c,
RN
FROM t;
Je suis la plupart du temps familier avec SQL Server et il y a au moins l'optimiseur a aucun problème à reconnaître que seules les colonnes a,b,c
sera nécessaire et l'utilisation de l' *
dans la table interne de l'expression ne cause pas de surcharge inutile de les récupérer et de jeter les colonnes inutiles.
En principe, SELECT *
doit être bien en vue que c'est la dernière SELECT
à partir de la vue où il devrait être évité toutefois dans SQL Server, cela peut entraîner des problèmes comme il stocke les métadonnées de colonne de points de vue qui n'est pas automatiquement mis à jour lorsque les tables sous-jacentes du changement et de l'utilisation de *
peut conduire à la confusion et des résultats incorrects à moins d' sp_refreshview
est exécuté pour mettre à jour ces métadonnées.