2010-06-30 4 views
2

У меня есть несколько файлов (они являются XML, но это не важно), которые необходимо вставить в существующую таблицу SQL (т.е. я ее не проектировал).) Таблица выглядит так.Как вставить содержимое текстового файла в таблицу в SQL Server

ReportType 
    ID (int) <- identity 
    Name (varchar(32)) 
    TransformXSLT (nvarchar(max)) 

Обычно я хотел бы сделать:

INSERT INTO ReportType (Name, TransformXSLT) 
VALUES ('template name', '<lots><of><xml><goes><here>...</lots>') 

Есть ли способ сделать:

INSERT INTO ReportType (Name, TransformXSLT) 
VALUES ('template name', {filename}) 

Я использую SQL Server Management Studio и Eclipse, Maven + для управления файлами.

ответ

2

BULK INSERT or OPENROWSET(BULK…) обычные варианты от T-SQL

После комментария ...

...FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB); 

и раздел "Bulk Экспорт или импорт SQLXML документов" here

К сожалению, у меня на самом деле не пробовал это, но MSDN говорит, что вы можете

+0

Ни один из параметров не позволяет мне указывать все содержимое файла как данные одного поля. Разве я что-то пропустил? –

+0

@ Крис Нава: обновлено, надеюсь, точнее ... – gbn

+0

hm .. SINGLE_NCLOB выглядит многообещающим .. будет исследовать. «SINGLE_NCLOB. Читая data_file как UNICODE, возвращает содержимое как однострочный набор строк с одним столбцом типа nvarchar (max), используя сопоставление текущей базы данных». –

0

Пробовали ли вы использовать мастер импорта и экспорта SQL Server?

Перейти в SQL Server Management Studio. В Обозревателе объектов щелкните правой кнопкой мыши базу данных, затем Задачи> Импорт данных ....

Это позволит вам импортировать данные как одно из упражнений или оставить сохраненный пакет SSIS и повторно запустить его.

Отдайте это.

Смежные вопросы