0

SQL Server 2005でデータ型がTEXTの列を使用して、改行やタブ文字などでフォーマットする必要のある文字列を格納する必要があります。

ストアドプロシージャを呼び出す前に、VS2010のテキストビジュアライザーで送信するテキストを表示するためのブレークポイントを追加しました。すべての書式設定は正確に希望どおりですが、データベースのセルに移動すると、データをコピーすると、フォーマットが失われます。私が見ることができることから、文字列に改行文字またはタブ文字が存在するたびに、テキストデータ型はそれをスペースに置き換えるだけです。改行の場合はvbNewlineを使用し、タブの場合はvbTabまたはXml.Formatting.Indentedを使用しています

列のデータ型は変更できないことに注意してください。これは、特定の目的で使用する必要がある単なるテーブルだからです。

これをデータベースでテキストのデータ型で正しくフォーマットするための提案はありますか?

例:

テーブルを表すSQLテーブルスクリプト:

CREATE TABLE [dbo].[FooLog](
    [FooID] [int] IDENTITY(1,1) NOT NULL,
    [FooInfo] [text] NULL )

Stringbuilderコード:

Dim sb As New StringBuilder()

sb.AppendFormat("{0}{1}", "Some text", vbNewLine)
sb.AppendLine("Some foo bar data")
sb.AppendLine(String.Format("{0}data{1}{0}some more data", vbTab, vbNewLine))

Dim stringToStoreInFooInfo As String = sb.ToString()

dbに保存:

db.AddInParameter(cmd, "FooInfo", SqlDbType.Text, stringToStoreInFooInfo)

現時点ではコードで読み返していません...Ctrl-Cまたは右クリックして「コピー」を使用してセルからコピーしています

4

2 に答える 2

4

SSMSセルからコピーすると、フォーマットが失われます。

テキストを元に戻すコードを取得した後でも、書式設定はそのままにしておく必要があります。

たとえば、SSMS で次を実行すると、改行が失われます。私が思うに、他の空白文字のスペースに切り替わります。

Select
'
This
    is
some fomatted
text
'
于 2012-11-30T18:19:44.187 に答える
0

「コピーまたは保存時に CR/FL を保持する」オプションを有効にすることができます。

[ツール] --> [オプション] --> [クエリ結果] --> [SQL Server] --> [グリッドへの結果]ここに画像の説明を入力

于 2020-05-14T03:42:51.580 に答える