Intereting Posts
Как получить SQL, фактически выполненный параметризованным запросом в .Net (VB или C #)? Динамическое создание элементов управления в c # Windows Forms Оптимизация триггера SQLite Триггер SQL Server 2012: выполнить динамический sql для каждой строки Храните ответы в таблице sql с уникальным идентификатором и сохраняйте каждый ответ в столбцах Выполнение хранимой процедуры в блоке OUTER APPLY Как настроить SQLite Присоединиться к данным столбца переменной LINQ to Entities – где предложение IN в запросе C # Альтернатива множественного набора активных результатов для MS-Access Порядок операций SQL Какую схему я могу использовать для размещения ручных записей данных на основе даты? Мне нужно найти и заменить \ n в поле mysql Оператор обновления – столбец географии – сервер sql Какую модель / модель следует использовать для обработки нескольких источников данных? Вызов SELECT с использованием набора Алгебра

Импорт XML-файла в SQL Server без BULK

Я пытаюсь импортировать данные из XML-файла в базу данных. Я сделал тестовый скрипт с помощью BULK INSERT , но когда я протестировал в живой базе данных, разрешения для BULK отключены.

Попытка № 1:

 BULK INSERT XMLTable FROM 'C:\Radu\test.xml' WITH (ROWTERMINATOR = '>'); 

введите описание изображения здесь

Итак, я продолжил исследования, чтобы найти способ избежать использования BULK и найти другие варианты, такие как OPENROWSET и OPENDATASOURCE . Но, к сожалению, права на эти операции также отменены.

Попытка № 2:

 SELECT * FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Text Driver (*.xml)};DefaultDir=C:\Radu\test.xml;', 'SELECT * FROM [test.xml];' ) 

привели к ошибке:

 Msg 15281, Level 16, State 1, Line 1 SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online. 

Я попытался RECONFIGURE разрешения для этого, но без успеха.

 EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; 

также привело к:

 Msg 15247, Level 16, State 1, Procedure sp_configure, Line 94 User does not have permission to perform this action. Msg 5812, Level 14, State 1, Line 2 You do not have permission to run the RECONFIGURE statement. Msg 15123, Level 16, State 1, Procedure sp_configure, Line 51 The configuration option 'Ad Hoc Distributed Queries' does not exist, or it may be an advanced option. Msg 5812, Level 14, State 1, Line 4 You do not have permission to run the RECONFIGURE statement. 

Я все еще пытаюсь найти решение только для импорта информации в базу данных, мне не нужен специальный формат, просто чтобы получить данные в системе, хотя в идеале я хотел бы импортировать каждую строку xml в качестве записи в мой стол.

Похоже, что большинство моих опций отрезаны, поэтому я буду очень признателен за любые предложения.

ОБНОВИТЬ:

Я собираюсь создать хранимую процедуру для импорта этих данных, поэтому в идеале это было бы общим, без hardcoding с информацией XML.

Для операции BULK INSERT вам нужны права администратора для этой базы данных. Вы можете взять XML-данные в переменной XML и вставить в таблицу, как указано в этой ссылке:

Импорт «xml» в Sql Server

Поскольку у вас нет массовых разрешений на загрузку, вам понадобится инструмент для преобразования XML в XSLX или XSL, затем откройте его и скопируйте все строки и вставьте его в таблицу.

Или

Это все еще использует компонент массовой загрузки, попробуйте, если он будет работать.

http://support.microsoft.com/kb/316005