j'ai créé une fonction dans SQL Server qui me recombine tout les champs
d'une table pour me retourner le tout sous forme binaire.
Le problème c'est que je voudrais bien utiliser ma fonction dans une requête
en lui passant comme argument * au lieu de passer tous les champs 1 par 1.
Par exemple :
SELECT BINARY_T20(*) FROM T20
au lieu de
SELECT BINARY_T20(TEST1,TEST2,TEST3,TEST4,TEST5....)
sachant que ma fonction ne doit pas être générique pour toute les tables,
mais uniquement pour une table donnée dont tous les champs sont déterminé !
Merci d'avance,
A+
PS : Si il existe une fonction toute faite qui fait ce que je veux faire,
n'hésitez pas ;)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
il suffit de passer par les vues d'information de schema pour obtenir une concaténation des nom des colonnes d'une table.
Exemple :
CREATE FUNCTION FN_LISTCOLS (@NOM_TABLE VARCHAR(128)) RETURNS VARCHAR(8000) AS BEGIN DECLARE @RETVAL VARCHAR(8000) SET @RETVAL = '' SELECT @RETVAL = @RETVAL +COLUMN_NAME+', ' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @NOM_TABLE IF @RETVAL IS NULL RETURN NULL IF @RETVAL = '' RETURN NULL SET @RETVAL = SUBSTRING(@RETVAL, 1, LEN(@RETVAL) -1) RETURN @RETVAL END
A lire sur le sujet : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA9
A +
MyKael a écrit:
Bonjour,
j'ai créé une fonction dans SQL Server qui me recombine tout les champs d'une table pour me retourner le tout sous forme binaire.
Le problème c'est que je voudrais bien utiliser ma fonction dans une requête en lui passant comme argument * au lieu de passer tous les champs 1 par 1. Par exemple : SELECT BINARY_T20(*) FROM T20 au lieu de SELECT BINARY_T20(TEST1,TEST2,TEST3,TEST4,TEST5....)
sachant que ma fonction ne doit pas être générique pour toute les tables, mais uniquement pour une table donnée dont tous les champs sont déterminé !
Merci d'avance,
A+
PS : Si il existe une fonction toute faite qui fait ce que je veux faire, n'hésitez pas ;)
-- 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: ******************
il suffit de passer par les vues d'information de schema pour obtenir
une concaténation des nom des colonnes d'une table.
Exemple :
CREATE FUNCTION FN_LISTCOLS (@NOM_TABLE VARCHAR(128))
RETURNS VARCHAR(8000) AS
BEGIN
DECLARE @RETVAL VARCHAR(8000)
SET @RETVAL = ''
SELECT @RETVAL = @RETVAL +COLUMN_NAME+', '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @NOM_TABLE
IF @RETVAL IS NULL
RETURN NULL
IF @RETVAL = ''
RETURN NULL
SET @RETVAL = SUBSTRING(@RETVAL, 1, LEN(@RETVAL) -1)
RETURN @RETVAL
END
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA9
A +
MyKael a écrit:
Bonjour,
j'ai créé une fonction dans SQL Server qui me recombine tout les champs
d'une table pour me retourner le tout sous forme binaire.
Le problème c'est que je voudrais bien utiliser ma fonction dans une requête
en lui passant comme argument * au lieu de passer tous les champs 1 par 1.
Par exemple :
SELECT BINARY_T20(*) FROM T20
au lieu de
SELECT BINARY_T20(TEST1,TEST2,TEST3,TEST4,TEST5....)
sachant que ma fonction ne doit pas être générique pour toute les tables,
mais uniquement pour une table donnée dont tous les champs sont déterminé !
Merci d'avance,
A+
PS : Si il existe une fonction toute faite qui fait ce que je veux faire,
n'hésitez pas ;)
--
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:brouardf@club-internet.fr ******************
il suffit de passer par les vues d'information de schema pour obtenir une concaténation des nom des colonnes d'une table.
Exemple :
CREATE FUNCTION FN_LISTCOLS (@NOM_TABLE VARCHAR(128)) RETURNS VARCHAR(8000) AS BEGIN DECLARE @RETVAL VARCHAR(8000) SET @RETVAL = '' SELECT @RETVAL = @RETVAL +COLUMN_NAME+', ' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @NOM_TABLE IF @RETVAL IS NULL RETURN NULL IF @RETVAL = '' RETURN NULL SET @RETVAL = SUBSTRING(@RETVAL, 1, LEN(@RETVAL) -1) RETURN @RETVAL END
A lire sur le sujet : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA9
A +
MyKael a écrit:
Bonjour,
j'ai créé une fonction dans SQL Server qui me recombine tout les champs d'une table pour me retourner le tout sous forme binaire.
Le problème c'est que je voudrais bien utiliser ma fonction dans une requête en lui passant comme argument * au lieu de passer tous les champs 1 par 1. Par exemple : SELECT BINARY_T20(*) FROM T20 au lieu de SELECT BINARY_T20(TEST1,TEST2,TEST3,TEST4,TEST5....)
sachant que ma fonction ne doit pas être générique pour toute les tables, mais uniquement pour une table donnée dont tous les champs sont déterminé !
Merci d'avance,
A+
PS : Si il existe une fonction toute faite qui fait ce que je veux faire, n'hésitez pas ;)
-- 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: ******************