OVH Cloud OVH Cloud

Sysaltfiles

3 réponses
Avatar
Dimitri
Bonjour,

Voil=E0 mon probl=E8me, lorsque je fais une requete dans la table
sysaltfiles pour avoir le fichier mdf de la base master comme ceci

select name, filename from sysaltfiles where name=3D'master'
name filename



---------------------------------------------------------------------------=
---------------------------------------------------------------------------=
---------------------------------------------------------------------------=
-------------------------------

master
f:\database\apprvi\MSSQL$V020SP01\data\master.mdf

(1 row(s) affected)

Or lorsque je fais la m=EAme requ=EAte avec la fonction QUOTENAME

select name, QUOTENAME(filename) from sysaltfiles where name=3D'master'

name





---------------------------------------------------------------------------=
--------------------------------------------------------------

master NULL

(1 row(s) affected)


Quelqu'un connait il le pourquoi du comment ? ...

cdlt
Dimitri

3 réponses

Avatar
Christian Robert
Bonjour,

Pourquoi voulez vous faire un QUOTENAME sur un chemin ?

Sinon pour ma part la requête fonctionne bien... Une idée cependant c'est
que le type de filename dans la table est un nvarchar(520) alors que
QUOTENAME attend comme argument un type sysname qui est un nvarchar(128).

--
Cordialement,
Christian Robert http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


"Dimitri" a écrit :

Bonjour,

Voilà mon problème, lorsque je fais une requete dans la table
sysaltfiles pour avoir le fichier mdf de la base master comme ceci

select name, filename from sysaltfiles where name='master'
name filename



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

master
f:databaseapprviMSSQL$V020SP01datamaster.mdf

(1 row(s) affected)

Or lorsque je fais la même requête avec la fonction QUOTENAME

select name, QUOTENAME(filename) from sysaltfiles where name='master'

name





-----------------------------------------------------------------------------------------------------------------------------------------

master NULL

(1 row(s) affected)


Quelqu'un connait il le pourquoi du comment ? ...

cdlt
Dimitri




Avatar
Dimitri
> Pourquoi voulez vous faire un QUOTENAME sur un chemin ?




à l'origine je ne voulais pas faire un QUOTENAME, mais j'avais besoin
de renseigner une variable avec la valeur du FILENAME, or la valeur
était tronquée ... c'est en faisant des tests pour voir la longueur
de cette variable que j'ai utilisé QUOTENAME.
Ceci dit, cela ne m'apparait pas être un comportement normal !
Avatar
Christian Robert
Sans doute un problème de taille...
Comme je l'indiquais c'est nvarchar(520) qu'il faut utiliser pour le champ
filename... A tout hasard faites un RTRIM sur la chaîne si le problème
persiste.

--
Cordialement,
Christian Robert http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


"Dimitri" a écrit :


> Pourquoi voulez vous faire un QUOTENAME sur un chemin ?
>

à l'origine je ne voulais pas faire un QUOTENAME, mais j'avais besoin
de renseigner une variable avec la valeur du FILENAME, or la valeur
était tronquée ... c'est en faisant des tests pour voir la longueur
de cette variable que j'ai utilisé QUOTENAME.
Ceci dit, cela ne m'apparait pas être un comportement normal !