Bonne rencontre,
Je me permets de venir vers vous car je suis un peu bloqué.
J’ai créé un lien entre plusieurs serveurs MS-SQL. J’ai une procédure stockée qui exécute un chaine de caractère avec un Exec (@SQL) . Cette PS attend deux paramètres qui sont le nom de la base de données à attaquer et le nom du serveur.
Les noms des serveurs est par exemple Server1 et Server-societe\instance
Je suis obligé de mettre entre crochet le deuxième nom du server sinon il dit que le – n’est pas une commande correcte. En gros, je suis obligé de faire ça comme valeur du paramètre [Server-societe\instance]
Si j’exécute ma PS depuis la console de MS-SQL, je n’ai aucun souci.
Si par contre, je l’exécute depuis un script php, je reçois ce message :
Ce message est provoqué par l’utilisation des [] qui semble fonctionner comme des ". J’ai essayé d’utiliser QUOTED_IDENTIFIER mais la doc me dit que cette instruction ne tient pas compte des []Warning: mssql_execute() [function.mssql-execute]: message: The identifier that starts with '[AVITOUR01].SsDataFA.dbo.T_DOS_References as ss_Ref INNER JOIN [[AVITOUR01].SsDataFA.dbo.T_DOS_Financiers as ss_Fin ON ss_' is too long. Maximum length is 128. (severity 15) in /home/www/d71613eafa4db42067418bee87f247d9/web/crm/components/com_synchromssql/helpers/CRM.php on line 1374
« L'utilisation de crochets, [ et ], pour délimiter des identificateurs n'est pas affectée par le paramètre QUOTED_IDENTIFIER. »
Je tourne en rond et je ne sais pas trop quoi faire.
Amicalement,
Raphaël.
Partager