4

OpenRowSetを使用して空のファイルにデータを挿入する方法

txt ファイル (D:\TDB など) に挿入する必要がありselect * from sys.tablesます。

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Text;Database=D:\TDB;HDR=Yes;', 'SELECT * FROM sys.tables.txt')
select * from sys.tables;

私は得る

リンク サーバー "(null)" の OLE DB プロバイダー "MICROSOFT.JET.OLEDB.4.0" から、"Microsoft Jet データベース エンジンはオブジェクト 'sys.tables.txt' が見つかりませんでした。その名前とパス名は正しくあります。」

メッセージ 7350、レベル 16、状態 2、回線

1 リンク サーバー "(null)" の OLE DB プロバイダー "MICROSOFT.JET.OLEDB.4.0" から列情報を取得できません。

なにが問題ですか?

PS。bcpソリューションを提案しないでください。原因は既にテストされており、毎回機能しないため、今すぐopenrowsetをテストします。

4

1 に答える 1

0

@serhio 、以下のSQLをテストしました:</p>

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Text;Database=D:\TDB;HDR=Yes;', 'SELECT * FROM sys.tables.txt')
select * from sys.tables;

いくつかのテスト結果が得られました

  1. ファイル名に「.」を含めないでください。初期化。(sys.tables.txt→systables.txt)
  2. HDR(Header Row)はここでは使用できません。(削除)
  3. txt ファイルが存在する必要があります。(作成)
  4. txt ファイルの最初の行は、ソース データのすべての列名である必要があります。

SQL

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Text;Database=D:\TDB;', 'SELECT * FROM systables.txt')
select * from sys.tables;

systables.txt

name,object_id,principal_id,schema_id,parent_object_id,type,type_desc,create_date,modify_date,is_ms_shipped,is_published,is_schema_published,lob_data_space_id,filestream_data_space_id,max_column_id_used,lock_on_bulk_load,uses_ansi_nulls,is_replicated,has_replication_filter,is_merge_published,is_sync_tran_subscribed,has_unchecked_assembly_data,text_in_row_limit,large_value_types_out_of_row,is_tracked_by_cdc,lock_escalation,lock_escalation_desc
于 2015-04-07T03:49:29.150 に答える