問題タブ [nvarchar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - テーブルの内容から末尾のスペースを削除する
nvarchar(30) フィールド「詳細」を持つ SQL Server 2000 データベースにテーブルがあります。その中には、末尾にスペースがある約 10,000 のレコードがあります。すべての行で特定のフィールドの内容をトリミングするクエリが必要です。どうすればこれを達成できますか?
ありがとう。
sql - SQL Server - 大きな文字列値を格納するためのより良いデータ型
約 200,000 レコードのデータベース テーブルがあります。これには、長さが 4000 ~ 70000 の文字列データを保持する 3 つの ntext 列が含まれます。ただし、テーブルで選択するだけで、データが返されるまでに 1 分以上かかります。where条件とインデックスを使用して、条件に対して12000レコードを選択しても、40秒かかります。
そのため、これらのデータ型を nvarchar(max) に変更することにしましたが、データが長すぎるために行の外に格納されるため、大きな違いはまだわかりませんでした。テーブルのこのパフォーマンスを向上させるより良い方法はありますか?
sql-server - nvarchar(max) と NText の比較
SQL Server でnvarchar(max)
対データ型を使用する利点と欠点は何ですか? NText
下位互換性は必要ないのでnvarchar(max)
、古い SQL Server リリースでサポートされていなくても問題ありません。
編集:TEXT
どうやら、質問はand とIMAGE
vs. varchar(max)
andにも適用され、varbinary(max)
後でそれらのデータ型を検索する人に適用されます。
sql-server - SQL Serverに表示されるUnicodeデータを復元するにはどうすればよいですか?
SQL Serverに、Unicodeデータを含める必要のある列を含むデータベースがあります(これには、世界中のユーザーのアドレスが含まれています。たとえば、カイロの場合はالقاهرة)。
この列は、データベースのデフォルト(Latin1_General_CI_AS)を照合したnvarchar列ですが、英語以外の文字を含むSQLステートメントを介してデータが挿入され、?????として表示されることに気付きました。
解決策は、nプレフィックスを使用していなかったということのようです。
それ以外の:
Unicodeはnvarchar列に自動的に変換され、このプレフィックスは必要ないという印象を受けましたが、これは正しくないようです。
問題は、この列に?????と表示されるデータがまだあることです。SQL Server Management Studioで、それが何であるかわかりません。
データはまだそこにありますが、正しくない文字エンコードで表示されないのに回収可能です(もしそうなら、どうすればデータを回復できますか?)、またはそれは永久に失われていますか?
ありがとう、
トム
sql-server - BCPとUTF-16を使用して、SQLServer2005のnvarcharフィールドにロードするためのファイルをJavaで作成します。
BCPを使用して、ローダー制御ファイルを使用してnvarcharフィールドを含むSQLServer2005テーブルにロードしたいと思います。私が理解しているように、SQL Server 2005はUTF-16のみをサポートしています(UTF-16 LEだと思います)。ファイルはJavaプログラムによって出力されています。私が現在設定している方法は次のとおりです。
XML形式のBCPローダーファイル(次のコマンドを使用して作成されます
bcp test_table format nul -c -x -T -f test_table.xml -S server
:)次のコードを使用して出力を書き込むJavaプログラム:
/li>次に、次のbcpコマンドを使用します。
bcp test_table in from_java.txt -T -f test_table.xml -S server -error error.txt
私がテーブルに入れるのはですÿþá
。ではなくáááááLittle Endian, BOM
パラメータを変更するいくつかの異なる順列を試しました。
- ローダー制御ファイルの生成方法を変更します(文字データの場合は-cではなくネイティブデータの場合は-nを使用します...これは何か関係があると思いますが、挿入されたデータに改善は見られませんでした)
- ビッグエンディアンとBOMのないリトルエンディアンを含むUTF-16エンコーディングのいくつかの異なる形式を試しましたが、役に立ちませんでした
- MicrosoftがBOM情報を利用したいということをどこかで読んだので、ファイルにBOMを手動で出力しようとしました。
- ファイルを(UTF-16ではなく)UCS-2として出力しようとすることを検討しました。これは、(明らかに)BCPが実際にファイルを読み込んでいるものです。
- bcpインポートで-wを試しましたが、これは機能しますが、ローダー形式のファイルと組み合わせることはできません(ファイルがUTF-16でエンコードされていることをBCPに伝える魔法を形式ファイルに組み込む方法はありますか?)
- Windows-1252でファイルを出力し、ファイル
-c 1252
をロードするときにbcpのオプションとしてそのコードページを指定すると、動作させることができます(ただし、UTF-16のように情報が失われるため、これは実行したくありません。 1252と比較して表現できるもののスーパーセット)
ローダー形式の構成ファイルと組み合わせてUTF-16データを使用してbcpをnvarcharフィールドにロードすることに成功した人はいますか?
前もって感謝します、
-ジェームズ
sql-server - SQL nvarchar に関する考慮事項
アドレス フィールドの nvarchar 列のサイズを決定するための戦略は何ですか? 常に nvarchar(max) または固定の最大サイズを使用していますか?
列が小さすぎるためにデータ統合が壊れることほど悪いことはありません。nvarchar(max) と固定最大 varchar サイズを使用すると、どのような影響が考えられますか? インデックスが大きくなりすぎることについては理解していますが、クエリのパフォーマンスはどうですか? 他に考慮すべきことはありますか?
sql-server - テーブルで VARCHAR(MAX) を使用することの欠点はありますか?
これが私の苦境です。
基本的に、未知の長さの文字を保持するためにテーブルに列が必要です。しかし、Sql Server で VARCHAR(MAX) または NVARCHAR(MAX) を列に使用すると、次のようなパフォーマンスの問題が発生する可能性があるかどうかに興味がありました。 10文字を格納します。ただし、その列に最大で数千文字、場合によっては 100 万文字になる可能性がわずかにありますが、これは予測できません。ただし、2GB の制限を超えないことは保証できます。
パフォーマンスの問題があるかどうか、またはこの問題を解決するためのより良い方法があるかどうかに興味がありました。
sql-server - SQL Server、varchar データから nvarchar データへ
照合 Danish_Norwegian_CS_AS と多数の varchar 列を含むデータベースがあります。このデータをすべて Unicode に変換したいのですが、このデータを変換する方法がまだ見つかりません。私の理解が正しければ、使用されるエンコーディングは UCS-2 リトル エンディアンです。
たとえば、Encoding.Default.GetString(Encoding.UTF8.GetBytes("PÃ¥l-Trygve")) を使用して C# で「Pål-Trygve」に簡単に変換できる「PÃ¥l-Trygve」を含む列があります。 ;
Microsoft SQL Server クライアントでこの変換を行う方法はありますか?
sql-server - NVARCHAR(MAX) と比較した場合、SQL Server での XML データ型のパフォーマンス ペナルティはどれくらいですか?
ログエントリを保持するデータベースがあります。
ログ テーブルの列の 1 つに (XML に) シリアル化されたオブジェクトが含まれており、私のチームの担当者が NVARCHAR(MAX) ではなく XML データ型を使用することを提案しました。このテーブルには、ログが「永久に」保持されます (非常に古いエントリのアーカイブが将来検討される可能性があります)。
CPUのオーバーヘッドが少し心配ですが、DBがより速く成長できるかどうかはさらに心配です(参照された質問のFoxyBOAは、XMLを使用するとDBが70%大きくなりました)。
この質問を読ん で、いくつかのアイデアが得られましたが、データベースのサイズが増減するかどうかを明確にすることに特に興味があります。
その件に関するあなたの洞察/経験を共有していただけませんか。
ところで。現在、SQL Server 内の XML 機能に依存する必要はありません (特定のケースでは、私にとって利点はほとんどありません)。場合によってはログ エントリが抽出されますが、私は .NET を使用して XML を処理することを好みます (小さなクライアントを作成するか、.NET アセンブリで定義された関数を使用します)。
sql-server - nvarchar(4000) から nvarchar(max) への変換
SQL Server (2005 & 2008) データベースには、列が nvarchar(4000) として定義されたいくつかのテーブルがあります。それよりも多くのデータを保存できる必要がある場合があり、代わりに nvarchar(max) を使用することを検討してください。それでは質問に移ります。
- 知っておくべきパフォーマンスへの影響はありますか?
- 「alter table」を使用して実際の移行を行うのは安全ですか、それとも別の方法がありますか?
- 変換する前に知っておくべきことは他にありますか?
よろしくヨハン