OVH Cloud OVH Cloud

Modification de valeur dans une table

3 réponses
Avatar
Eric Blin
Bonjour,

Voila j'ai une table qui posséde plusieurs colonnes, je voudrais parcourir
tout les colonnes et mettre à jour toutes les cellules de chaque
enregistrement


En gros pour toutes les colonnes qui ont une valeur nulle je leur affecte la
valeur vide.

bon je sais faire
update MATABLE SET MACOL1='' WHERE MACOL1 IS NULL

Je pense pouvoir récupérer les noms des colonnes de la table en allant taper
dans master mais ce que je vais trouver c'est MACOL1, MACOL2, et la je seche
pour creer mes requetes qui vont bien.

Une petite aide serait la bienvenue.

Cordialement

Eric

3 réponses

Avatar
Bouarroudj Mohamed
Ce bout de code peut vous aider

select 'update dbo.YourTable set ' + name + ' = '''''
from dbo.syscolumns
where id = Object_id('dbo.YourTable')
and IsNullable = 1



"Eric Blin" <eblin at telelogos dot com> wrote in message
news:
Bonjour,

Voila j'ai une table qui posséde plusieurs colonnes, je voudrais
parcourir
tout les colonnes et mettre à jour toutes les cellules de chaque
enregistrement


En gros pour toutes les colonnes qui ont une valeur nulle je leur affecte
la
valeur vide.

bon je sais faire
update MATABLE SET MACOL1='' WHERE MACOL1 IS NULL

Je pense pouvoir récupérer les noms des colonnes de la table en allant
taper
dans master mais ce que je vais trouver c'est MACOL1, MACOL2, et la je
seche
pour creer mes requetes qui vont bien.

Une petite aide serait la bienvenue.

Cordialement

Eric




Avatar
Eric Blin
"Bouarroudj Mohamed" a écrit dans le message de
news:
Ce bout de code peut vous aider

select 'update dbo.YourTable set ' + name + ' = '''''
from dbo.syscolumns
where id = Object_id('dbo.YourTable')
and IsNullable = 1




Merci

Je vais essayer avec cette info

Bonne soirée

Eric
Avatar
Jérôme Campo
Bonjour Eric,

De manière générique, il vaux toujours mieux privilégier l'utilisation des
vues système INFORMATION_VIEWS plutôt que d'interroger directement les tables
systèmes, afin d'éviter de générer une requête complexe sur ces tables,
d'autant plus que les nom de colonnes ne sont pas forcément explicites voir
sont non documentés...

On peux donc imaginer:

select 'update dbo.YourTable set ' + column_name + ' = '''''
from YourDatabase.information_schema.columns
where table_name = 'dbo.YourTable'
order by ordinal_position

Cordialement,

--
Jérôme Campo -

French SQL Regional Program Manager


"Eric Blin" wrote:

Bonjour,

Voila j'ai une table qui posséde plusieurs colonnes, je voudrais parcourir
tout les colonnes et mettre à jour toutes les cellules de chaque
enregistrement


En gros pour toutes les colonnes qui ont une valeur nulle je leur affecte la
valeur vide.

bon je sais faire
update MATABLE SET MACOL1='' WHERE MACOL1 IS NULL

Je pense pouvoir récupérer les noms des colonnes de la table en allant taper
dans master mais ce que je vais trouver c'est MACOL1, MACOL2, et la je seche
pour creer mes requetes qui vont bien.

Une petite aide serait la bienvenue.

Cordialement

Eric