Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON (Ventauto.dbo.ARVENDU.pointpst =
Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms de
colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON (Ventauto.dbo.ARVENDU.pointpst =
Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms de
colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON (Ventauto.dbo.ARVENDU.pointpst =
Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms de
colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
Guy Gasiorowski a écrit :Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :
Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Sql dynamique ? Pourquoi pas, je vais chercher si je trouve un exemple
Merci
Sql dynamique ? Pourquoi pas, je vais chercher si je trouve un exemple
Merci
Sql dynamique ? Pourquoi pas, je vais chercher si je trouve un exemple
Merci
Guy Gasiorowski a écrit :Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :
Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :Bonjour,
Pour archiver des données, je me sers de INSERT INTO. Mais je voudrais
automatiser la listes des colonnes. Exemple :
INSERT INTO VentautoAR.dbo.VEHICULE (dbo.FN_LISTCOLS('vehicule'))
SELECT (dbo.FN_LISTCOLS('vehicule')) FROM Ventauto.dbo.VEHICULE
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU ON
(Ventauto.dbo.ARVENDU.pointpst = Ventauto.dbo.VEHICULE.pointpst)
Je me sers d'une fonction disponible sur internet pour récupérer les noms
de colonne d'une table. et elle marche.
J'ai une erreur apparement apres la clause SELECT.
Est ce que quelqu'un a déjà fait ce genre de jour ?
vousne pouvez pas faire cela comme ça il faut passer par du sql dynamique.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER JOIN
Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER JOIN
Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER JOIN
Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
Guy Gasiorowski a écrit :Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :
Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Guy Gasiorowski a écrit :Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
"Fred BROUARD" a écrit dans le message de
news: eJI$Guy Gasiorowski a écrit :Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Merci Frédéric,
Pourtant le site sqlpro est un de mes sites de références pour SQL, J'ai
cherché mais jamais je n'aurais trouvé dans cette procédure
(SP_SEARCH_STRING_ANYFIELD)
En tout cas lerci beaucoup pour la réponse, je vais tester çà.
a+
Guy
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news: eJI$RFQ3HHA.1188@TK2MSFTNGP04.phx.gbl...
Guy Gasiorowski a écrit :
Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Merci Frédéric,
Pourtant le site sqlpro est un de mes sites de références pour SQL, J'ai
cherché mais jamais je n'aurais trouvé dans cette procédure
(SP_SEARCH_STRING_ANYFIELD)
En tout cas lerci beaucoup pour la réponse, je vais tester çà.
a+
Guy
"Fred BROUARD" a écrit dans le message de
news: eJI$Guy Gasiorowski a écrit :Voici la conclusion de mes recherches :
J'ai fait une procédure stockée mais je ne suis pas plus avancée
CREATE PROCEDURE proc_Archive
AS
DECLARE @CMD as varchar(512)
SET @CMD='INSERT INTO VentautoAR.VEHICULE dbo.FN_LISTCOLS(''vehicule'')
SELECT (FN_LISTCOLS(''vehicule'')) FROM Ventauto.VEHICULE RIGHT OUTER
JOIN Ventauto.ARVENDU ON (Ventauto.ARVENDU.pointpst =
Ventauto.VEHICULE.pointpst)'
PRINT @CMD
EXEC(@cmd)
GO
Un petit coup de main ?
Merci d'avance
USE VentautoAR;
DECLARE @SQL NVARCHAR(4000), @COLS NVARCHAR(4000);
SET @COLS = ''
-- concaténation des noms des colonnes :
SELECT @COLS = @COLS + COLUMN_NAME + ', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'VEHICULE';
-- on enlève la dernière virgule parasite
SET @COLS = SUBSTRING(@COLS, 1, LEN(@COLS) - 1);
-- composition dynamique du SQL
SET @SQL = 'INSERT INTO dbo.VEHICULE (' + @COLS + ') '
+ 'SELECT ' + @COLS +' '
+ 'FROM dbo.VEHICULE AS V '
+ ' RIGHT OUTER JOIN dbo.ARVENDU AS A '
+ ' ON A.pointpst = V.pointpst';
-- exécution
EXEC(@SQL);
Si vous aviez lu les articles que j'ai écrit qui présente le langage
Transact SQL sur mon site SQLpro, vous auriez vu une procédure qui
ressemble étrangement à cela !
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.3
procédure SP_SEARCH_STRING_ANYFIELD
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Merci Frédéric,
Pourtant le site sqlpro est un de mes sites de références pour SQL, J'ai
cherché mais jamais je n'aurais trouvé dans cette procédure
(SP_SEARCH_STRING_ANYFIELD)
En tout cas lerci beaucoup pour la réponse, je vais tester çà.
a+
Guy
Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2 tables).
Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2 tables).
Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2 tables).
Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
Guy Gasiorowski a écrit :Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS
ARV ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2
tables). Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...)
SELECT ???.pointveh, ???....
FROM Ventauto.dbo.VEHICULE AS V
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et remplace les ??? par les alias.
A +
Guy Gasiorowski a écrit :
Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS
ARV ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2
tables). Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...)
SELECT ???.pointveh, ???....
FROM Ventauto.dbo.VEHICULE AS V
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et remplace les ??? par les alias.
A +
Guy Gasiorowski a écrit :Voici la commande insert into générée :
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...) SELECT pointveh, ...
FROM Ventauto.dbo.VEHICULE AS V RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS
ARV ON ARV.pointpst = V.pointpst
et la commande est correct
Mais il me fait une erreur sur des colonnes ambigus. Ces colonnes sont
celles de la table ARVENDU (pointveh par exemple présent dans les 2
tables). Comment positionner des alias sur des champs non utilisés ?
Merci d'avance
INSERT INTO VentautoAR.dbo.VEHICULE (pointveh, ...)
SELECT ???.pointveh, ???....
FROM Ventauto.dbo.VEHICULE AS V
RIGHT OUTER JOIN Ventauto.dbo.ARVENDU AS ARV
ON ARV.pointpst = V.pointpst
et remplace les ??? par les alias.
A +