2009-10-13 7 views
0

J'ai une table appelée Field dans ma base de données SQL Server. La table a un champ appelé "Unités".Exécution d'un fichier de commandes pour mettre à jour un champ avec un caractère étrange dans SQL Server DB

J'ai un script batch qui insère beaucoup de choses ici en utilisant OSQL et l'une des choses entrées est le signe dièse (£). Lorsque OSQL exécute les requêtes, il convertit le signe £ en -ú à la place.

Ce que je dois avoir un fichier de lot séparé qui met à jour tout cela à la fin

par exemple Ce sql ci-dessus fonctionne très bien si je cours dans une requête mais par OSQL cela ne fonctionne pas.

J'ai trouvé que modifier le fichier en mode DOS dans TextPad me permet de mettre le symbole DOS pour £ et ce bit fonctionne bien, mais je ne sais pas comment remplacer la partie -ú pour que je puisse faire le remplacement.

Des idées?

Répondre

1

Got it

update field set units = 'œ' WHERE units = '-£' 

J'ai pris le personnage de ma base de données, je l'ai collé dans le fichier qui était en mode DOS puis sauvegardé. J'ai ensuite ouvert ce dossier dans TextPad et il est venu comme - £

a bien fonctionné

Merci

0

Je crois que ce que vous devez faire est de passer la valeur ASCII du caractère, en utilisant chr (XX), où XX est la valeur ASCII pour '-u'

0

ont OSQL exécuter une procédure stockée:

CREATE PROCEDURE FixIt 
AS 

update field set units = '£' where units = '-ú' 

GO 
Questions connexes