Bonjour,
voila ma question:
je fait appel à cette PS affin quelle me retourne les nom des champs de la
table passée en param de (@table_name )
en excluant ce spécifiés en param de (@COL).
l'exclusion ce fait par un not in en bas de l'udf.
le probléme est que je n'arrive pas à lui passé plusieure valeur en
parametre exemple, ja voudrai passé le nom des champs à exclure du resultat
por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3') en
sachant que le not in est en fait ecrit not in (@COL).
j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien ne
marche, j'ai dailleur cherché à passé un tableau en param mais je n'est pas
trouvé comment faire alors si vous pouviez m'aider je vous en serai
reconnaissant.
à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais je
trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
simple je suis preneur
Merci
PS: Je précise qund mème que je débute en SQL
--*********************************************
--Cette UDF est dérivée de la PS system sp_sproc_columns
--*********************************************
ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
@table_name nvarchar(384),
@COL SQL_VARIANT
)
RETURNS @TABLE TABLE(COLUMN_NAME text)
AS
BEGIN
DECLARE @full_table_name nvarchar(769)
DECLARE @table_id int
DECLARE @ODBCVer int
Set @ODBCVer = 2
if @ODBCVer <> 3
Begin
select @ODBCVer = 2
End
SELECT @table_id = object_id(@full_table_name)
INSERT @TABLE
SELECT
COLUMN_NAME = convert(sysname,c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name
AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name not in (@COL)
RETURN
END
Bonjour,
voila ma question:
je fait appel à cette PS affin quelle me retourne les nom des champs de la
table passée en param de (@table_name )
en excluant ce spécifiés en param de (@COL).
l'exclusion ce fait par un not in en bas de l'udf.
le probléme est que je n'arrive pas à lui passé plusieure valeur en
parametre exemple, ja voudrai passé le nom des champs à exclure du resultat
por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3') en
sachant que le not in est en fait ecrit not in (@COL).
j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien ne
marche, j'ai dailleur cherché à passé un tableau en param mais je n'est pas
trouvé comment faire alors si vous pouviez m'aider je vous en serai
reconnaissant.
à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais je
trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
simple je suis preneur
Merci
PS: Je précise qund mème que je débute en SQL
--*********************************************
--Cette UDF est dérivée de la PS system sp_sproc_columns
--*********************************************
ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
@table_name nvarchar(384),
@COL SQL_VARIANT
)
RETURNS @TABLE TABLE(COLUMN_NAME text)
AS
BEGIN
DECLARE @full_table_name nvarchar(769)
DECLARE @table_id int
DECLARE @ODBCVer int
Set @ODBCVer = 2
if @ODBCVer <> 3
Begin
select @ODBCVer = 2
End
SELECT @table_id = object_id(@full_table_name)
INSERT @TABLE
SELECT
COLUMN_NAME = convert(sysname,c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name
AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name not in (@COL)
RETURN
END
Bonjour,
voila ma question:
je fait appel à cette PS affin quelle me retourne les nom des champs de la
table passée en param de (@table_name )
en excluant ce spécifiés en param de (@COL).
l'exclusion ce fait par un not in en bas de l'udf.
le probléme est que je n'arrive pas à lui passé plusieure valeur en
parametre exemple, ja voudrai passé le nom des champs à exclure du resultat
por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3') en
sachant que le not in est en fait ecrit not in (@COL).
j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien ne
marche, j'ai dailleur cherché à passé un tableau en param mais je n'est pas
trouvé comment faire alors si vous pouviez m'aider je vous en serai
reconnaissant.
à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais je
trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
simple je suis preneur
Merci
PS: Je précise qund mème que je débute en SQL
--*********************************************
--Cette UDF est dérivée de la PS system sp_sproc_columns
--*********************************************
ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
@table_name nvarchar(384),
@COL SQL_VARIANT
)
RETURNS @TABLE TABLE(COLUMN_NAME text)
AS
BEGIN
DECLARE @full_table_name nvarchar(769)
DECLARE @table_id int
DECLARE @ODBCVer int
Set @ODBCVer = 2
if @ODBCVer <> 3
Begin
select @ODBCVer = 2
End
SELECT @table_id = object_id(@full_table_name)
INSERT @TABLE
SELECT
COLUMN_NAME = convert(sysname,c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name
AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name not in (@COL)
RETURN
END
Part de cette base :
DECLARE @TABLE_NAME VARCHAR(128)
SET @TABLE_NAME = 'T_ACTEUR_ATR'
DECLARE @COLUMNS VARCHAR(8000)
SET @COLUMNS = ''
DECLARE @SQL VARCHAR(8000)
SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME
SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
A +
BossHog a écrit:
> Bonjour,
> voila ma question:
> je fait appel à cette PS affin quelle me retourne les nom des champs de
> table passée en param de (@table_name )
> en excluant ce spécifiés en param de (@COL).
> l'exclusion ce fait par un not in en bas de l'udf.
> le probléme est que je n'arrive pas à lui passé plusieure valeur en
> parametre exemple, ja voudrai passé le nom des champs à exclure du
> por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
> sachant que le not in est en fait ecrit not in (@COL).
> j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien
> marche, j'ai dailleur cherché à passé un tableau en param mais je n'est
> trouvé comment faire alors si vous pouviez m'aider je vous en serai
> reconnaissant.
>
> à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais
> trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> simple je suis preneur
> Merci
>
> PS: Je précise qund mème que je débute en SQL
> --*********************************************
> --Cette UDF est dérivée de la PS system sp_sproc_columns
> --*********************************************
> ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> @table_name nvarchar(384),
> @COL SQL_VARIANT
> )
> RETURNS @TABLE TABLE(COLUMN_NAME text)
> AS
> BEGIN
> DECLARE @full_table_name nvarchar(769)
> DECLARE @table_id int
> DECLARE @ODBCVer int
> Set @ODBCVer = 2
>
> if @ODBCVer <> 3
> Begin
> select @ODBCVer = 2
> End
>
> SELECT @table_id = object_id(@full_table_name)
>
> INSERT @TABLE
> SELECT
> COLUMN_NAME = convert(sysname,c.name)
> FROM
> sysobjects o,
> master.dbo.spt_datatype_info d,
> systypes t,
> syscolumns c
> LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> AND m.colid = 1
> WHERE
> o.name like @table_name
> AND o.id = c.id
> AND t.xtype = d.ss_dtype
> AND c.length = isnull(d.fixlen, c.length)
> AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF')
> c.number = 0))
> AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
> 'IsIdentity'),0)
> AND c.xusertype = t.xusertype
> AND c.name not in (@COL)
> RETURN
> END
>
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Part de cette base :
DECLARE @TABLE_NAME VARCHAR(128)
SET @TABLE_NAME = 'T_ACTEUR_ATR'
DECLARE @COLUMNS VARCHAR(8000)
SET @COLUMNS = ''
DECLARE @SQL VARCHAR(8000)
SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME
SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
A +
BossHog a écrit:
> Bonjour,
> voila ma question:
> je fait appel à cette PS affin quelle me retourne les nom des champs de
> table passée en param de (@table_name )
> en excluant ce spécifiés en param de (@COL).
> l'exclusion ce fait par un not in en bas de l'udf.
> le probléme est que je n'arrive pas à lui passé plusieure valeur en
> parametre exemple, ja voudrai passé le nom des champs à exclure du
> por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
> sachant que le not in est en fait ecrit not in (@COL).
> j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien
> marche, j'ai dailleur cherché à passé un tableau en param mais je n'est
> trouvé comment faire alors si vous pouviez m'aider je vous en serai
> reconnaissant.
>
> à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais
> trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> simple je suis preneur
> Merci
>
> PS: Je précise qund mème que je débute en SQL
> --*********************************************
> --Cette UDF est dérivée de la PS system sp_sproc_columns
> --*********************************************
> ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> @table_name nvarchar(384),
> @COL SQL_VARIANT
> )
> RETURNS @TABLE TABLE(COLUMN_NAME text)
> AS
> BEGIN
> DECLARE @full_table_name nvarchar(769)
> DECLARE @table_id int
> DECLARE @ODBCVer int
> Set @ODBCVer = 2
>
> if @ODBCVer <> 3
> Begin
> select @ODBCVer = 2
> End
>
> SELECT @table_id = object_id(@full_table_name)
>
> INSERT @TABLE
> SELECT
> COLUMN_NAME = convert(sysname,c.name)
> FROM
> sysobjects o,
> master.dbo.spt_datatype_info d,
> systypes t,
> syscolumns c
> LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> AND m.colid = 1
> WHERE
> o.name like @table_name
> AND o.id = c.id
> AND t.xtype = d.ss_dtype
> AND c.length = isnull(d.fixlen, c.length)
> AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF')
> c.number = 0))
> AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
> 'IsIdentity'),0)
> AND c.xusertype = t.xusertype
> AND c.name not in (@COL)
> RETURN
> END
>
>
>
--
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 ******************
Part de cette base :
DECLARE @TABLE_NAME VARCHAR(128)
SET @TABLE_NAME = 'T_ACTEUR_ATR'
DECLARE @COLUMNS VARCHAR(8000)
SET @COLUMNS = ''
DECLARE @SQL VARCHAR(8000)
SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME
SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
A +
BossHog a écrit:
> Bonjour,
> voila ma question:
> je fait appel à cette PS affin quelle me retourne les nom des champs de
> table passée en param de (@table_name )
> en excluant ce spécifiés en param de (@COL).
> l'exclusion ce fait par un not in en bas de l'udf.
> le probléme est que je n'arrive pas à lui passé plusieure valeur en
> parametre exemple, ja voudrai passé le nom des champs à exclure du
> por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
> sachant que le not in est en fait ecrit not in (@COL).
> j'ai essayer diverse syntaxe avec doublage et triplage de cotes et rien
> marche, j'ai dailleur cherché à passé un tableau en param mais je n'est
> trouvé comment faire alors si vous pouviez m'aider je vous en serai
> reconnaissant.
>
> à l'heure actuelle je m'oriente vers une solution utilisant OPENXML mais
> trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> simple je suis preneur
> Merci
>
> PS: Je précise qund mème que je débute en SQL
> --*********************************************
> --Cette UDF est dérivée de la PS system sp_sproc_columns
> --*********************************************
> ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> @table_name nvarchar(384),
> @COL SQL_VARIANT
> )
> RETURNS @TABLE TABLE(COLUMN_NAME text)
> AS
> BEGIN
> DECLARE @full_table_name nvarchar(769)
> DECLARE @table_id int
> DECLARE @ODBCVer int
> Set @ODBCVer = 2
>
> if @ODBCVer <> 3
> Begin
> select @ODBCVer = 2
> End
>
> SELECT @table_id = object_id(@full_table_name)
>
> INSERT @TABLE
> SELECT
> COLUMN_NAME = convert(sysname,c.name)
> FROM
> sysobjects o,
> master.dbo.spt_datatype_info d,
> systypes t,
> syscolumns c
> LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> AND m.colid = 1
> WHERE
> o.name like @table_name
> AND o.id = c.id
> AND t.xtype = d.ss_dtype
> AND c.length = isnull(d.fixlen, c.length)
> AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF')
> c.number = 0))
> AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
> 'IsIdentity'),0)
> AND c.xusertype = t.xusertype
> AND c.name not in (@COL)
> RETURN
> END
>
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Merci Merci Merci,
c'est excellent je me suis meme permis d'ajouter ceci dans la clause where
"and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
tables temp et de curseur.
pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
j'aurai d'autres besoins comme par exemple: checker le nombre de param
PS Etc...
et je ne trouve rien quand je cherche dans le book SQL online
Encore Merci à toi
BossHog
jf pédrazzani
MobileWorkers
"Fred BROUARD" wrote in message
news:
> Part de cette base :
>
> DECLARE @TABLE_NAME VARCHAR(128)
> SET @TABLE_NAME = 'T_ACTEUR_ATR'
>
> DECLARE @COLUMNS VARCHAR(8000)
> SET @COLUMNS = ''
>
> DECLARE @SQL VARCHAR(8000)
>
> SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> FROM INFORMATION_SCHEMA.COLUMNS
> WHERE TABLE_NAME = @TABLE_NAME
>
> SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
>
> A +
>
> BossHog a écrit:
> > Bonjour,
> > voila ma question:
> > je fait appel à cette PS affin quelle me retourne les nom des champs
la
> > table passée en param de (@table_name )
> > en excluant ce spécifiés en param de (@COL).
> > l'exclusion ce fait par un not in en bas de l'udf.
> > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > parametre exemple, ja voudrai passé le nom des champs à exclure du
resultat
> > por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
en
> > sachant que le not in est en fait ecrit not in (@COL).
> > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
ne
> > marche, j'ai dailleur cherché à passé un tableau en param mais je
pas
> > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > reconnaissant.
> >
> > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
je
> > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> > simple je suis preneur
> > Merci
> >
> > PS: Je précise qund mème que je débute en SQL
> > --*********************************************
> > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > --*********************************************
> > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > @table_name nvarchar(384),
> > @COL SQL_VARIANT
> > )
> > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > AS
> > BEGIN
> > DECLARE @full_table_name nvarchar(769)
> > DECLARE @table_id int
> > DECLARE @ODBCVer int
> > Set @ODBCVer = 2
> >
> > if @ODBCVer <> 3
> > Begin
> > select @ODBCVer = 2
> > End
> >
> > SELECT @table_id = object_id(@full_table_name)
> >
> > INSERT @TABLE
> > SELECT
> > COLUMN_NAME = convert(sysname,c.name)
> > FROM
> > sysobjects o,
> > master.dbo.spt_datatype_info d,
> > systypes t,
> > syscolumns c
> > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > AND m.colid = 1
> > WHERE
> > o.name like @table_name
> > AND o.id = c.id
> > AND t.xtype = d.ss_dtype
> > AND c.length = isnull(d.fixlen, c.length)
> > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
and
> > c.number = 0))
> > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
> > 'IsIdentity'),0)
> > AND c.xusertype = t.xusertype
> > AND c.name not in (@COL)
> > RETURN
> > END
> >
> >
> >
>
> --
> Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
> Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> ****************** mailto: ******************
>
Merci Merci Merci,
c'est excellent je me suis meme permis d'ajouter ceci dans la clause where
"and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
tables temp et de curseur.
pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
j'aurai d'autres besoins comme par exemple: checker le nombre de param
PS Etc...
et je ne trouve rien quand je cherche dans le book SQL online
Encore Merci à toi
BossHog
jf pédrazzani
MobileWorkers
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:3F2664F4.8020602@club-internet.fr...
> Part de cette base :
>
> DECLARE @TABLE_NAME VARCHAR(128)
> SET @TABLE_NAME = 'T_ACTEUR_ATR'
>
> DECLARE @COLUMNS VARCHAR(8000)
> SET @COLUMNS = ''
>
> DECLARE @SQL VARCHAR(8000)
>
> SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> FROM INFORMATION_SCHEMA.COLUMNS
> WHERE TABLE_NAME = @TABLE_NAME
>
> SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
>
> A +
>
> BossHog a écrit:
> > Bonjour,
> > voila ma question:
> > je fait appel à cette PS affin quelle me retourne les nom des champs
la
> > table passée en param de (@table_name )
> > en excluant ce spécifiés en param de (@COL).
> > l'exclusion ce fait par un not in en bas de l'udf.
> > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > parametre exemple, ja voudrai passé le nom des champs à exclure du
resultat
> > por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
en
> > sachant que le not in est en fait ecrit not in (@COL).
> > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
ne
> > marche, j'ai dailleur cherché à passé un tableau en param mais je
pas
> > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > reconnaissant.
> >
> > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
je
> > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> > simple je suis preneur
> > Merci
> >
> > PS: Je précise qund mème que je débute en SQL
> > --*********************************************
> > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > --*********************************************
> > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > @table_name nvarchar(384),
> > @COL SQL_VARIANT
> > )
> > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > AS
> > BEGIN
> > DECLARE @full_table_name nvarchar(769)
> > DECLARE @table_id int
> > DECLARE @ODBCVer int
> > Set @ODBCVer = 2
> >
> > if @ODBCVer <> 3
> > Begin
> > select @ODBCVer = 2
> > End
> >
> > SELECT @table_id = object_id(@full_table_name)
> >
> > INSERT @TABLE
> > SELECT
> > COLUMN_NAME = convert(sysname,c.name)
> > FROM
> > sysobjects o,
> > master.dbo.spt_datatype_info d,
> > systypes t,
> > syscolumns c
> > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > AND m.colid = 1
> > WHERE
> > o.name like @table_name
> > AND o.id = c.id
> > AND t.xtype = d.ss_dtype
> > AND c.length = isnull(d.fixlen, c.length)
> > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
and
> > c.number = 0))
> > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
> > 'IsIdentity'),0)
> > AND c.xusertype = t.xusertype
> > AND c.name not in (@COL)
> > RETURN
> > END
> >
> >
> >
>
> --
> 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 ******************
>
Merci Merci Merci,
c'est excellent je me suis meme permis d'ajouter ceci dans la clause where
"and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
tables temp et de curseur.
pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
j'aurai d'autres besoins comme par exemple: checker le nombre de param
PS Etc...
et je ne trouve rien quand je cherche dans le book SQL online
Encore Merci à toi
BossHog
jf pédrazzani
MobileWorkers
"Fred BROUARD" wrote in message
news:
> Part de cette base :
>
> DECLARE @TABLE_NAME VARCHAR(128)
> SET @TABLE_NAME = 'T_ACTEUR_ATR'
>
> DECLARE @COLUMNS VARCHAR(8000)
> SET @COLUMNS = ''
>
> DECLARE @SQL VARCHAR(8000)
>
> SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> FROM INFORMATION_SCHEMA.COLUMNS
> WHERE TABLE_NAME = @TABLE_NAME
>
> SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
>
> A +
>
> BossHog a écrit:
> > Bonjour,
> > voila ma question:
> > je fait appel à cette PS affin quelle me retourne les nom des champs
la
> > table passée en param de (@table_name )
> > en excluant ce spécifiés en param de (@COL).
> > l'exclusion ce fait par un not in en bas de l'udf.
> > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > parametre exemple, ja voudrai passé le nom des champs à exclure du
resultat
> > por obtenir l'équivalent de ceci dans le not in ('col1','col2','col3')
en
> > sachant que le not in est en fait ecrit not in (@COL).
> > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
ne
> > marche, j'ai dailleur cherché à passé un tableau en param mais je
pas
> > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > reconnaissant.
> >
> > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
je
> > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a plus
> > simple je suis preneur
> > Merci
> >
> > PS: Je précise qund mème que je débute en SQL
> > --*********************************************
> > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > --*********************************************
> > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > @table_name nvarchar(384),
> > @COL SQL_VARIANT
> > )
> > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > AS
> > BEGIN
> > DECLARE @full_table_name nvarchar(769)
> > DECLARE @table_id int
> > DECLARE @ODBCVer int
> > Set @ODBCVer = 2
> >
> > if @ODBCVer <> 3
> > Begin
> > select @ODBCVer = 2
> > End
> >
> > SELECT @table_id = object_id(@full_table_name)
> >
> > INSERT @TABLE
> > SELECT
> > COLUMN_NAME = convert(sysname,c.name)
> > FROM
> > sysobjects o,
> > master.dbo.spt_datatype_info d,
> > systypes t,
> > syscolumns c
> > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > AND m.colid = 1
> > WHERE
> > o.name like @table_name
> > AND o.id = c.id
> > AND t.xtype = d.ss_dtype
> > AND c.length = isnull(d.fixlen, c.length)
> > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
and
> > c.number = 0))
> > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
> > 'IsIdentity'),0)
> > AND c.xusertype = t.xusertype
> > AND c.name not in (@COL)
> > RETURN
> > END
> >
> >
> >
>
> --
> Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
> Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> ****************** mailto: ******************
>
Pour une fois que Fred répond sans faire référence à un capitre de son
voilà qu'on lui réclame.
Alors je vais le faire à sa place ;-))
http://sqlpro.developpez.com/SQL_AZ_7b.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/SQL_AZ_7b.html
Chapitre 9
"BossHog" a écrit dans le message de
news:%
> Merci Merci Merci,
> c'est excellent je me suis meme permis d'ajouter ceci dans la clause
> "and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
> ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
> tables temp et de curseur.
>
> pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
> j'aurai d'autres besoins comme par exemple: checker le nombre de param
d'une
> PS Etc...
> et je ne trouve rien quand je cherche dans le book SQL online
> Encore Merci à toi
> BossHog
> jf pédrazzani
> MobileWorkers
>
>
> "Fred BROUARD" wrote in message
> news:
> > Part de cette base :
> >
> > DECLARE @TABLE_NAME VARCHAR(128)
> > SET @TABLE_NAME = 'T_ACTEUR_ATR'
> >
> > DECLARE @COLUMNS VARCHAR(8000)
> > SET @COLUMNS = ''
> >
> > DECLARE @SQL VARCHAR(8000)
> >
> > SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> > FROM INFORMATION_SCHEMA.COLUMNS
> > WHERE TABLE_NAME = @TABLE_NAME
> >
> > SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
> >
> > A +
> >
> > BossHog a écrit:
> > > Bonjour,
> > > voila ma question:
> > > je fait appel à cette PS affin quelle me retourne les nom des champs
de
> la
> > > table passée en param de (@table_name )
> > > en excluant ce spécifiés en param de (@COL).
> > > l'exclusion ce fait par un not in en bas de l'udf.
> > > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > > parametre exemple, ja voudrai passé le nom des champs à exclure du
> resultat
> > > por obtenir l'équivalent de ceci dans le not in
> en
> > > sachant que le not in est en fait ecrit not in (@COL).
> > > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
rien
> ne
> > > marche, j'ai dailleur cherché à passé un tableau en param mais je
n'est
> pas
> > > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > > reconnaissant.
> > >
> > > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
mais
> je
> > > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a
> > > simple je suis preneur
> > > Merci
> > >
> > > PS: Je précise qund mème que je débute en SQL
> > > --*********************************************
> > > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > > --*********************************************
> > > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > > @table_name nvarchar(384),
> > > @COL SQL_VARIANT
> > > )
> > > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > > AS
> > > BEGIN
> > > DECLARE @full_table_name nvarchar(769)
> > > DECLARE @table_id int
> > > DECLARE @ODBCVer int
> > > Set @ODBCVer = 2
> > >
> > > if @ODBCVer <> 3
> > > Begin
> > > select @ODBCVer = 2
> > > End
> > >
> > > SELECT @table_id = object_id(@full_table_name)
> > >
> > > INSERT @TABLE
> > > SELECT
> > > COLUMN_NAME = convert(sysname,c.name)
> > > FROM
> > > sysobjects o,
> > > master.dbo.spt_datatype_info d,
> > > systypes t,
> > > syscolumns c
> > > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > > AND m.colid = 1
> > > WHERE
> > > o.name like @table_name
> > > AND o.id = c.id
> > > AND t.xtype = d.ss_dtype
> > > AND c.length = isnull(d.fixlen, c.length)
> > > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
'IF')
> and
> > > c.number = 0))
> > > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
c.name,
> > > 'IsIdentity'),0)
> > > AND c.xusertype = t.xusertype
> > > AND c.name not in (@COL)
> > > RETURN
> > > END
> > >
> > >
> > >
> >
> > --
> > Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> > Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
> > Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> > ****************** mailto: ******************
> >
>
>
Pour une fois que Fred répond sans faire référence à un capitre de son
voilà qu'on lui réclame.
Alors je vais le faire à sa place ;-))
http://sqlpro.developpez.com/SQL_AZ_7b.html
Chapitre 9
"BossHog" <jfpedrazzani.mworkers@wanadoo.fr> a écrit dans le message de
news:%23sIvxSdVDHA.656@tk2msftngp13.phx.gbl...
> Merci Merci Merci,
> c'est excellent je me suis meme permis d'ajouter ceci dans la clause
> "and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
> ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
> tables temp et de curseur.
>
> pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
> j'aurai d'autres besoins comme par exemple: checker le nombre de param
d'une
> PS Etc...
> et je ne trouve rien quand je cherche dans le book SQL online
> Encore Merci à toi
> BossHog
> jf pédrazzani
> MobileWorkers
>
>
> "Fred BROUARD" <brouardf@club-internet.fr> wrote in message
> news:3F2664F4.8020602@club-internet.fr...
> > Part de cette base :
> >
> > DECLARE @TABLE_NAME VARCHAR(128)
> > SET @TABLE_NAME = 'T_ACTEUR_ATR'
> >
> > DECLARE @COLUMNS VARCHAR(8000)
> > SET @COLUMNS = ''
> >
> > DECLARE @SQL VARCHAR(8000)
> >
> > SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> > FROM INFORMATION_SCHEMA.COLUMNS
> > WHERE TABLE_NAME = @TABLE_NAME
> >
> > SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
> >
> > A +
> >
> > BossHog a écrit:
> > > Bonjour,
> > > voila ma question:
> > > je fait appel à cette PS affin quelle me retourne les nom des champs
de
> la
> > > table passée en param de (@table_name )
> > > en excluant ce spécifiés en param de (@COL).
> > > l'exclusion ce fait par un not in en bas de l'udf.
> > > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > > parametre exemple, ja voudrai passé le nom des champs à exclure du
> resultat
> > > por obtenir l'équivalent de ceci dans le not in
> en
> > > sachant que le not in est en fait ecrit not in (@COL).
> > > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
rien
> ne
> > > marche, j'ai dailleur cherché à passé un tableau en param mais je
n'est
> pas
> > > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > > reconnaissant.
> > >
> > > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
mais
> je
> > > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a
> > > simple je suis preneur
> > > Merci
> > >
> > > PS: Je précise qund mème que je débute en SQL
> > > --*********************************************
> > > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > > --*********************************************
> > > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > > @table_name nvarchar(384),
> > > @COL SQL_VARIANT
> > > )
> > > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > > AS
> > > BEGIN
> > > DECLARE @full_table_name nvarchar(769)
> > > DECLARE @table_id int
> > > DECLARE @ODBCVer int
> > > Set @ODBCVer = 2
> > >
> > > if @ODBCVer <> 3
> > > Begin
> > > select @ODBCVer = 2
> > > End
> > >
> > > SELECT @table_id = object_id(@full_table_name)
> > >
> > > INSERT @TABLE
> > > SELECT
> > > COLUMN_NAME = convert(sysname,c.name)
> > > FROM
> > > sysobjects o,
> > > master.dbo.spt_datatype_info d,
> > > systypes t,
> > > syscolumns c
> > > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > > AND m.colid = 1
> > > WHERE
> > > o.name like @table_name
> > > AND o.id = c.id
> > > AND t.xtype = d.ss_dtype
> > > AND c.length = isnull(d.fixlen, c.length)
> > > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
'IF')
> and
> > > c.number = 0))
> > > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
c.name,
> > > 'IsIdentity'),0)
> > > AND c.xusertype = t.xusertype
> > > AND c.name not in (@COL)
> > > RETURN
> > > END
> > >
> > >
> > >
> >
> > --
> > 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 ******************
> >
>
>
Pour une fois que Fred répond sans faire référence à un capitre de son
voilà qu'on lui réclame.
Alors je vais le faire à sa place ;-))
http://sqlpro.developpez.com/SQL_AZ_7b.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/SQL_AZ_7b.html
Chapitre 9
"BossHog" a écrit dans le message de
news:%
> Merci Merci Merci,
> c'est excellent je me suis meme permis d'ajouter ceci dans la clause
> "and COLUMN_NAME not in ('SUPPLIERGROUPCODE_ID','SUPPLIERGROUPCODE')"
> ce qui fait que je vais pouvoir effacer mon usine à gaz, faite à base de
> tables temp et de curseur.
>
> pourrais tu me dire ou trouver plus d'infos sur INFORMATION_SCHEMA car
> j'aurai d'autres besoins comme par exemple: checker le nombre de param
d'une
> PS Etc...
> et je ne trouve rien quand je cherche dans le book SQL online
> Encore Merci à toi
> BossHog
> jf pédrazzani
> MobileWorkers
>
>
> "Fred BROUARD" wrote in message
> news:
> > Part de cette base :
> >
> > DECLARE @TABLE_NAME VARCHAR(128)
> > SET @TABLE_NAME = 'T_ACTEUR_ATR'
> >
> > DECLARE @COLUMNS VARCHAR(8000)
> > SET @COLUMNS = ''
> >
> > DECLARE @SQL VARCHAR(8000)
> >
> > SELECT @COLUMNS = @COLUMNS+', '+COLUMN_NAME
> > FROM INFORMATION_SCHEMA.COLUMNS
> > WHERE TABLE_NAME = @TABLE_NAME
> >
> > SELECT SUBSTRING(@COLUMNS, 3, LEN(@COLUMNS) -2)
> >
> > A +
> >
> > BossHog a écrit:
> > > Bonjour,
> > > voila ma question:
> > > je fait appel à cette PS affin quelle me retourne les nom des champs
de
> la
> > > table passée en param de (@table_name )
> > > en excluant ce spécifiés en param de (@COL).
> > > l'exclusion ce fait par un not in en bas de l'udf.
> > > le probléme est que je n'arrive pas à lui passé plusieure valeur en
> > > parametre exemple, ja voudrai passé le nom des champs à exclure du
> resultat
> > > por obtenir l'équivalent de ceci dans le not in
> en
> > > sachant que le not in est en fait ecrit not in (@COL).
> > > j'ai essayer diverse syntaxe avec doublage et triplage de cotes et
rien
> ne
> > > marche, j'ai dailleur cherché à passé un tableau en param mais je
n'est
> pas
> > > trouvé comment faire alors si vous pouviez m'aider je vous en serai
> > > reconnaissant.
> > >
> > > à l'heure actuelle je m'oriente vers une solution utilisant OPENXML
mais
> je
> > > trouve sa un peu lourd pour les utilisateur de l'udf alors si y'a
> > > simple je suis preneur
> > > Merci
> > >
> > > PS: Je précise qund mème que je débute en SQL
> > > --*********************************************
> > > --Cette UDF est dérivée de la PS system sp_sproc_columns
> > > --*********************************************
> > > ALTER FUNCTION GET_COLUMNS_TABLE_NAMES_WITHOUT_SPECIFIED (
> > > @table_name nvarchar(384),
> > > @COL SQL_VARIANT
> > > )
> > > RETURNS @TABLE TABLE(COLUMN_NAME text)
> > > AS
> > > BEGIN
> > > DECLARE @full_table_name nvarchar(769)
> > > DECLARE @table_id int
> > > DECLARE @ODBCVer int
> > > Set @ODBCVer = 2
> > >
> > > if @ODBCVer <> 3
> > > Begin
> > > select @ODBCVer = 2
> > > End
> > >
> > > SELECT @table_id = object_id(@full_table_name)
> > >
> > > INSERT @TABLE
> > > SELECT
> > > COLUMN_NAME = convert(sysname,c.name)
> > > FROM
> > > sysobjects o,
> > > master.dbo.spt_datatype_info d,
> > > systypes t,
> > > syscolumns c
> > > LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> > > AND m.colid = 1
> > > WHERE
> > > o.name like @table_name
> > > AND o.id = c.id
> > > AND t.xtype = d.ss_dtype
> > > AND c.length = isnull(d.fixlen, c.length)
> > > AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
> > > AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF',
'IF')
> and
> > > c.number = 0))
> > > AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id,
c.name,
> > > 'IsIdentity'),0)
> > > AND c.xusertype = t.xusertype
> > > AND c.name not in (@COL)
> > > RETURN
> > > END
> > >
> > >
> > >
> >
> > --
> > Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> > Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://sqlpro.developpez.com/bookSQL.html
> > Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> > ****************** mailto: ******************
> >
>
>