1

次のようなSQLコマンドがあります。

INSERT [dbo].[Currency] ([CurrencyID], [Description], [Symbol]) 
VALUES (N'7418fe34-1abc-4189-b5f1-e638a34af1a1', N'GBP', N'£')

これをデータベースに対して実行すると、最後の列が「£」ではなく「£」として入力されます。私は以前にこれに遭遇しましたが、私の人生ではそれを修正する方法を思い出すことはできません!

何か案は?

ありがとう。

アップデート

おかしなことに、SQL ファイルからその行をコピーして sql man スタッドに貼り付けると、問題なく挿入されます。それで、私のSQLファイルに何か問題があると思います.その中に文字が見えませんか?

アップデート

SQL スクリプトには、ユーロ記号を挿入するための次のコードがあります。

INSERT [dbo].[Currency] ([CurrencyID], [Description], [Symbol])
VALUES (N'c60b1e0c-289a-4a0a-8c7d-30a490cbb7a8', N'EUR', N'€')

そして、最後の列のデータベースに「€」を出力します

アップデート

OK、完全なSQLファイルをコピーしてSQL Serverに貼り付けて実行すると、すべてが正常に挿入されます。では、「.sql」ファイルを実行したときにのみこの問題が発生するのはなぜですか?

アップデート

別のアップデート!Visual Studio で「.sql」ファイルを表示すると問題ないように見えますが、メモ帳で開くと、偽の文字が表示されます。

4

1 に答える 1

5

(コメントより)

ファイルは UTF-8 として保存されますが、sqlcmd は間違ったコード ページを使用してファイルを読み取っています。オプションに追加-f 65001すると、sqlcmd に UTF-8 ファイルとして読み取るように指示されます。

于 2012-06-22T13:01:37.500 に答える