OVH Cloud OVH Cloud

Requête variable

3 réponses
Avatar
Geko
Bonjour,

J'ai une table =E0 35 champs et je voudrais faire une mise =E0=20
jour du genre :

update matable set champ1 =3D 'A' where champ1 is null sans=20
=EAtre oblig=E9 de me tapper les 35 colonnes. Est-ce qu'il=20
existe un moyen plus rapide ?=20

For i =3D 0 to 35
update matable set col(i) =3D 'A' where col(i) is null
Next i

3 réponses

Avatar
Fred BROUARD
non, car un SGBDR étant supposé faire du relationnel, la modélisation des 35 colonnes numérotés de 0 à 35 est anti
relationnelle donc supposé ne jamais être fait.

C'est une erreur de conception !

A +

Geko a écrit:
Bonjour,

J'ai une table à 35 champs et je voudrais faire une mise à
jour du genre :

update matable set champ1 = 'A' where champ1 is null sans
être obligé de me tapper les 35 colonnes. Est-ce qu'il
existe un moyen plus rapide ?

For i = 0 to 35
update matable set col(i) = 'A' where col(i) is null
Next i



--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Fred BROUARD
non, car un SGBDR étant supposé faire du relationnel, la modélisation des 35 colonnes numérotés de 0 à 35 est anti
relationnelle donc supposé ne jamais être fait.

C'est une erreur de conception !

A +

Geko a écrit:
Bonjour,

J'ai une table à 35 champs et je voudrais faire une mise à
jour du genre :

update matable set champ1 = 'A' where champ1 is null sans
être obligé de me tapper les 35 colonnes. Est-ce qu'il
existe un moyen plus rapide ?

For i = 0 to 35
update matable set col(i) = 'A' where col(i) is null
Next i



--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Yan Roosens
Walut!

Fred BROUARD wrote:

non, car un SGBDR étant supposé faire du relationnel, la modélisation des 35 colonnes numérotés de 0 à 35 est anti
relationnelle donc supposé ne jamais être fait.

C'est une erreur de conception !



Et en plus, de 0 à 35, ça fait 36.

SI tu dois replacer tous les champs, voici du VBscript pour une base Access, mais il n'y a que strconn à changer pour
une base SQL

strconn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=ma_base_de_donnée.mdb"
set Conn = server.createobject("adodb.connection")
Conn.open strconn
set rs = server.createobject("adodb.recordset")
rs.open ma_table,Conn
for each fielditem in rs.fields
sqlstr = "UPDATE ma_table SET " & fielditem.name & "='A' WHERE " & fielditem.name & " IS NULL"
Conn.execute(sqlstr)
Next

Bon, il est tôt, pas encore bu ma deuxième tasse de café, m:ais ça devrait plus ou moins fonctionner....

Yan
La nourrice montre son sein, et le pont s'affaisse.