2

ファイルからTextタイプ列 ( )にテキストを挿入する最も簡単な方法 (できれば SQL Server Management Studio を使用するだけ) は何ですか。text, ntext, varchar(max), nvarchar(max)

テーブルがあると言う

textFileContent(id, textData)

そしてやりたい

insert into textFileContent(textData)
values([data read from a file, complete file content])

また、同様の方法で更新を行うことは可能ですか? 例えば

update textFileContent
set textData = [data read from a file,  complete file content]
where id = 1
4

3 に答える 3

3

xp_cmdshellを使用できます。

create table #mytable 
(
    id int IDENTITY(1,1) NOT NULL,
    result nvarchar(MAX) NULL
)

insert into #mytable (result)
exec xp_cmdshell 'type c:\somefile.txt' -- this may require cmd before it

これにより、テキストがテーブルにダンプされます。ハードリターンは新しいレコードを表します。

それ以外の場合、SQL Expressを使用している場合は、BCPとBULKINSERTに制限されます。最初にテーブルを作成してフォーマットファイルを生成する場合、BCPにはコマンドがあります。Unicodeの場合は、区切り文字が2文字\n\0\r\0(またはそのようなもの)であることを忘れないでください

それ以外の場合は、SQL標準以上を使用している場合はSSISを使用できます。データフローを作成し、入力テキストファイルのアイコンをドロップし、宛先テーブルのアイコンをドロップして、[再生]をクリックします。これをSQLで機能させるには、上記のxp_cmdshellのようなもので呼び出す必要があります。SSISは、テキストファイルに関する限り、BCPで何をするかを視覚的に表したものです。

于 2010-11-02T17:51:43.407 に答える
0

OPENROWSETを使用して、テキストファイルからデータをインポートできます。ただし、このためには、フォーマットファイルも定義する必要がある場合があります。あなたはここでより多くの助けを見つけることができます

于 2010-11-02T17:42:12.377 に答える
0

答えは、ユースケースによって少し異なります。プロジェクトの開始時にデータをロードする必要があると思います...データをSQLサーバーに「フィード」する必要がある場合は、別の答えがあります。

最も簡単な選択肢は次のとおりです。

  • SQL ステートメントになるようにテキスト ファイルを再フォーマットします。たとえば、names というテーブルに挿入したいテキスト行がある場合、insert into names value('各行の最初と')最後に配置できます。次に、それをマネージャーにコピーして貼り付けて実行します。

  • 一括挿入を使用する (リンク)

  • SSIS/DTS を使用する (リンク)

于 2010-11-02T17:07:34.607 に答える