OVH Cloud OVH Cloud

requete insert globale

3 réponses
Avatar
Bonjour
j aimerais une requete qui me permette de remplir sur une
ligne toutes les colonnes d une table avec la meme valeur

cela dans le but d eviter de saisir ecxactement les
colonnes dans las requtes d insertion

ma requetes d insertion etant dans un code ASP cela me
permettrait aussi en cas de modification de la table
(ajout ou supp de colonnes ) de ne pas avoir a modifier le
code

par exemples si dans ma tables j ai les colonnes
En ++ Fr ++ De
TR Tr Tr
Pour eviter de taper
insert into matable (En, Fr, De) Values(TR,TR,TR)
Du genre
insert into matable (*) Values(TR) evidemment je suppute
cette ligne ne marchant pas

Merci d avance et bon week

3 réponses

Avatar
Pierre Goiffon
Dans le message:094901c35d93$f7154d90$,
a écrit:
j aimerais une requete qui me permette de remplir sur une
ligne toutes les colonnes d une table avec la meme valeur



Ca n'existe pas à ma connaissance en SQL
Cependant, vous pourrez obtenir la liste des colonnes de la table assez
simplement via les schémas, ou tout bêtement en ouvrant un RS vide et en
listant les noms des éléments de la collection ADO Fields.

--
_________________________________________________________
/
. Pierre GOIFFON .
. p g o i f f o n @ w e b c i t y . f r .
_________________________________________________________/
Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php
Avatar
bruno reiter [MVP]
use northwind
go
create table aaa
( aa int not null,
aaa int not null,
aaaa int not null
)
go

declare @aa int
set @aa = 11

insert aaa
values(@aa,@aa,@aa)

go

select * from aaa

go

drop table aaa

go


br
wrote in message
news:094901c35d93$f7154d90$
Bonjour
j aimerais une requete qui me permette de remplir sur une
ligne toutes les colonnes d une table avec la meme valeur

cela dans le but d eviter de saisir ecxactement les
colonnes dans las requtes d insertion

ma requetes d insertion etant dans un code ASP cela me
permettrait aussi en cas de modification de la table
(ajout ou supp de colonnes ) de ne pas avoir a modifier le
code

par exemples si dans ma tables j ai les colonnes
En ++ Fr ++ De
TR Tr Tr
Pour eviter de taper
insert into matable (En, Fr, De) Values(TR,TR,TR)
Du genre
insert into matable (*) Values(TR) evidemment je suppute
cette ligne ne marchant pas

Merci d avance et bon week


Avatar
Fred BROUARD
En supposant que les valeurs soient des chaines de caractères

CREATE PROCEDURE SP_FILL_TABLE_VALUE @TABLE_NAME VARCHAR(128),
@VALUE VARCHAR(32)
AS

DECLARE @SQL VARCHAR(8000)
DECLARE @LISTCOLS VARCHAR(8000)
DECLARE @I INT

SELECT @I = COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME

SET @LISTCOLS = ''

SELECT @LISTCOLS = @LISTCOLS+COLUMN_NAME+', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME

SET @LISTCOLS = SUBSTRING(@LISTCOLS, 1, LEN(@LISTCOLS) -1)

SET @SQL = 'INSERT INTO '+@TABLE_NAME+' ('+@LISTCOLS+') VALUES ('
WHILE @I <> 0
BEGIN
SET @SQL = @SQL+''''+REPLACE(@VALUE, '''', '''''')+''', '
SET @I = @I-1
END
SET @SQL = SUBSTRING(@SQL, 1, LEN(@SQL)-1)+')'

EXEC(@SQL)

GO

exemple :

SP_FILL_TABLE_VALUE 'T_CHAMBRE', 'd''accord'

A +




a écrit:
Bonjour
j aimerais une requete qui me permette de remplir sur une
ligne toutes les colonnes d une table avec la meme valeur

cela dans le but d eviter de saisir ecxactement les
colonnes dans las requtes d insertion

ma requetes d insertion etant dans un code ASP cela me
permettrait aussi en cas de modification de la table
(ajout ou supp de colonnes ) de ne pas avoir a modifier le
code

par exemples si dans ma tables j ai les colonnes
En ++ Fr ++ De
TR Tr Tr
Pour eviter de taper
insert into matable (En, Fr, De) Values(TR,TR,TR)
Du genre
insert into matable (*) Values(TR) evidemment je suppute
cette ligne ne marchant pas

Merci d avance et bon week



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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
****************** mailto: ******************