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
rudi bruchez
John a écrit:
set @sqlStatement = 'select @IDValue=' + @fieldName + ' from '+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+'' execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale) n'existe pas. Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(), voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables, permettre de recherche sur toutes les colonnes sans contrôle peut conduire à de très mauvaises performances.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
John a écrit:
set @sqlStatement = 'select @IDValue=' + @fieldName + ' from
'+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+''
execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale)
n'existe pas.
Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(),
voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables,
permettre de recherche sur toutes les colonnes sans contrôle peut conduire
à de très mauvaises performances.
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
set @sqlStatement = 'select @IDValue=' + @fieldName + ' from '+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+'' execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale) n'existe pas. Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(), voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables, permettre de recherche sur toutes les colonnes sans contrôle peut conduire à de très mauvaises performances.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
John
Merci.
Justement qu'entends-tu par "grande table"
Si je comprends bien, ce genre de requête exclut l'utilisation des index mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message news:%
John a écrit:
> set @sqlStatement = 'select @IDValue=' + @fieldName + ' from > '+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+'' > execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale) n'existe pas. Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(), voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables, permettre de recherche sur toutes les colonnes sans contrôle peut conduire à de très mauvaises performances.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
Merci.
Justement qu'entends-tu par "grande table"
Si je comprends bien, ce genre de requête exclut l'utilisation des index
mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message
news:%23qKHXAZzGHA.4204@TK2MSFTNGP04.phx.gbl...
John a écrit:
> set @sqlStatement = 'select @IDValue=' + @fieldName + ' from
> '+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+''
> execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale)
n'existe pas.
Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(),
voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables,
permettre de recherche sur toutes les colonnes sans contrôle peut conduire
à de très mauvaises performances.
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
Si je comprends bien, ce genre de requête exclut l'utilisation des index mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message news:%
John a écrit:
> set @sqlStatement = 'select @IDValue=' + @fieldName + ' from > '+@tableName+ ' where '+ @columnName +' = '+''+ @fieldValue+'' > execute (@sqlStatement)
Bonjour,
Ton SQL dynamique s'exécute dans un scope où ta variable (qui est locale) n'existe pas. Tu peux régler le problème en utilisant sp_executesql au lieu de EXEC(), voir ceci : http://support.microsoft.com/default.aspx/kb/262499
P.S. fais attention avec ta recherche générique sur les grandes tables, permettre de recherche sur toutes les colonnes sans contrôle peut conduire à de très mauvaises performances.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
rudi bruchez
John a écrit:
Si je comprends bien, ce genre de requête exclut l'utilisation des index mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il y a un index sur la colonne, il sera utilisé (s'il est suffisamment sélectif). Ce que je veux dire est qu'en général on fait ce type de sql générique pour permettre de faire des recherche sur toutes les colonnes. Il est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code envoyé au serveur, tu peux t'attendre à des problèmes de performances, notamment sur les colonnes non indexées.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
John a écrit:
Si je comprends bien, ce genre de requête exclut l'utilisation des index
mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il y
a un index sur la colonne, il sera utilisé (s'il est suffisamment
sélectif). Ce que je veux dire est qu'en général on fait ce type de sql
générique pour permettre de faire des recherche sur toutes les colonnes. Il
est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont
les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code
envoyé au serveur, tu peux t'attendre à des problèmes de performances,
notamment sur les colonnes non indexées.
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
Si je comprends bien, ce genre de requête exclut l'utilisation des index mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il y a un index sur la colonne, il sera utilisé (s'il est suffisamment sélectif). Ce que je veux dire est qu'en général on fait ce type de sql générique pour permettre de faire des recherche sur toutes les colonnes. Il est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code envoyé au serveur, tu peux t'attendre à des problèmes de performances, notamment sur les colonnes non indexées.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
John
Bonjour,
Dans mon cas, je souhaiterais utiliser ce type de requête afin d'avoir à multiplier les SP qui cherchent sur un code ou sur un ID. J'envoie comme "paramètre" le nom de la table, la colonne de recherche et la colonne recherchée.
Mais peut être est-ce finalement plus compliqué à "maintenir" surtout si d'autres se plongent dans le code.
Merci
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message news:%
John a écrit:
> Si je comprends bien, ce genre de requête exclut l'utilisation des index > mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il
y
a un index sur la colonne, il sera utilisé (s'il est suffisamment sélectif). Ce que je veux dire est qu'en général on fait ce type de sql générique pour permettre de faire des recherche sur toutes les colonnes.
Il
est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code envoyé au serveur, tu peux t'attendre à des problèmes de performances, notamment sur les colonnes non indexées.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/
Bonjour,
Dans mon cas, je souhaiterais utiliser ce type de requête afin d'avoir à
multiplier les SP qui cherchent sur un code ou sur un ID.
J'envoie comme "paramètre" le nom de la table, la colonne de recherche et la
colonne recherchée.
Mais peut être est-ce finalement plus compliqué à "maintenir" surtout si
d'autres se plongent dans le code.
Merci
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message
news:%23BoqCLC0GHA.4228@TK2MSFTNGP06.phx.gbl...
John a écrit:
> Si je comprends bien, ce genre de requête exclut l'utilisation des index
> mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il
y
a un index sur la colonne, il sera utilisé (s'il est suffisamment
sélectif). Ce que je veux dire est qu'en général on fait ce type de sql
générique pour permettre de faire des recherche sur toutes les colonnes.
Il
est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont
les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code
envoyé au serveur, tu peux t'attendre à des problèmes de performances,
notamment sur les colonnes non indexées.
--
Rudi Bruchez
Consultant indépendant
modélisation, administration, optimisation,
solutions MS SQL Server et informatique libre.
MCDBA, SCJP2
http://www.babaluga.com/
Dans mon cas, je souhaiterais utiliser ce type de requête afin d'avoir à multiplier les SP qui cherchent sur un code ou sur un ID. J'envoie comme "paramètre" le nom de la table, la colonne de recherche et la colonne recherchée.
Mais peut être est-ce finalement plus compliqué à "maintenir" surtout si d'autres se plongent dans le code.
Merci
"rudi bruchez" <rudi#nospam#@babaluga.com> wrote in message news:%
John a écrit:
> Si je comprends bien, ce genre de requête exclut l'utilisation des index > mais à partir de combien d'enregistrement est-ce vraiment pénalisant ?
Bonjour,
Ce type de requête n'exclut pas du tout l'utilisation des index. Quand il
y
a un index sur la colonne, il sera utilisé (s'il est suffisamment sélectif). Ce que je veux dire est qu'en général on fait ce type de sql générique pour permettre de faire des recherche sur toutes les colonnes.
Il
est bien plus difficile d'optimiser sa base si tu ne sais pas quelles sont les requêtes qui vont y être envoyées. Quand tu ne maîtrise pas le code envoyé au serveur, tu peux t'attendre à des problèmes de performances, notamment sur les colonnes non indexées.
-- Rudi Bruchez Consultant indépendant modélisation, administration, optimisation, solutions MS SQL Server et informatique libre. MCDBA, SCJP2 http://www.babaluga.com/