Définir toutes les valeurs 0 sur NULL

Comment puis-je définir toutes les valeurs 0 à NULL dans une table SQL?

Merci d'avance.

update table set col = null where col = 0 
 UPDATE MYTABLE SET MYCOLUMN = NULL WHERE MYCOLUMN = 0 

Mais voulez-vous dire dans toutes les colonnes? Ce sera plus de travail et mieux vous suffit de créer des déclarations distinctes pour chaque colonne. Il est également possible de lire le schéma et de générer un SQL dans une procédure stockée et EXEC, mais je ne recommand pas car j'imagine que c'est un travail ponctuel et si vous le faites plus souvent, quelque chose avec le design est faux.

 UPDATE MyTable SET Col1 = NULLIF(Col1, 0), Col2 = NULLIF(Col2, 0), Col3 = NULLIF(Col3, 0) WHERE (Col1 = 0 OR Col2 = 0 OR Col3 = 0) 

S'il s'agit d'un travail ponctuel, vous pouvez toujours récupérer la sortie de l'instruction suivante et l'exécuter.

 SELECT 'UPDATE ' + OBJECT_NAME(OBJECT_ID) + ' SET ' + sc.name + ' = NULL WHERE ' + sc.name + ' = 0' FROM sys.columns sc INNER JOIN sys.types st ON st.system_type_id = sc.system_type_id WHERE st.name IN ('bigint', 'int', 'smallint') AND OBJECT_NAME(OBJECT_ID) = 'YourTable'