Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SqlXmlBulkLoad использование схемы в имени таблицы  [new]
aleks2
Guest
В примерах от микрософта дозволяется (и даже пример есть) имя таблицы
sql:relation="shema.name"
одначе, когда я в работающей схеме .XSD ставлю такое, SqlXmlBulkLoad ругаеццо:
Microsoft OLE DB Provider for SQL Server: Неправильный синтаксис около конструкции ".".
и нифига не грузит.

Схема есть, пробовал и схему dbo.

Сервера от 2005 до 201?.
SqlXmlBulkLoad 4.0

Где подвох?
17 ноя 15, 06:21    [18427124]     Ответить | Цитировать Сообщить модератору
 Re: SqlXmlBulkLoad использование схемы в имени таблицы  [new]
aleks2
Guest
Рабочая схема загрузки
unitlist_Schema.xsd
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
>
<xsd:element name="selena" sql:is-constant="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="units" sql:is-constant="1" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="unit" minOccurs="0" maxOccurs="unbounded"
sql:relation="xml_units"
sql:key-fields="objectid id"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int" use="required"/>
<xsd:attribute name="objectid" type="xsd:int" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

успешно создает таблицу xml_units(objectid, id, name) и грузит данные
unitlist.xlm
<?xml version="1.0" encoding="utf-8"?>
<selena>
<units>
<unit id="13" objectid="4">
<name>Имя1</name>
</unit>
<unit id="12" objectid="4">
<name>Имя2</name>
</unit>
</units>
</selena>

Загрузчик
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=dc3\WSUS;database=tempdb;integrated security=SSPI"
objBL.ErrorLogFile = "error.log"
objBL.SchemaGen = True
objBL.SGDropTables = True
objBL.Execute "unitlist_Schema.xsd", "unitlist.xml"
Set objBL = Nothing

sql:relation="xml_units" - работает
sql:relation="dbo.xml_units" - НЕ работает.

Почему?
17 ноя 15, 09:06    [18427319]     Ответить | Цитировать Сообщить модератору
 Re: SqlXmlBulkLoad использование схемы в имени таблицы  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
aleks2, раз: http://www.execsql.com/post/sql-xml-bulk-load-basic-xsd-syntax
и два: http://www.execsql.com/post/sql-xml-bulk-load-relationships-and-composite-keys
17 ноя 15, 12:35    [18428668]     Ответить | Цитировать Сообщить модератору
 Re: SqlXmlBulkLoad использование схемы в имени таблицы  [new]
aleks2
Guest
Minamoto
aleks2, раз: http://www.execsql.com/post/sql-xml-bulk-load-basic-xsd-syntax
и два: http://www.execsql.com/post/sql-xml-bulk-load-relationships-and-composite-keys

Не, ты пальцем покажи.

Я пока остановился на факте: БЕЗ генерации схемы (создания таблиц) - работает.
Есть генерация схемы (создание таблиц) - НЕ работает.
17 ноя 15, 14:57    [18429722]     Ответить | Цитировать Сообщить модератору
 Re: SqlXmlBulkLoad использование схемы в имени таблицы  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
aleks2, мне стало дико интересно, благо я в документации явно нашел указание на возможность использования схемы:

https://msdn.microsoft.com/en-us/library/ms171870.aspx

Сделал пример, включил профайлер, и получил при указании схемы следующий запрос:

CREATE TABLE   test.xml_units
(
id  int                /* xmldt: i4 */
     NOT NULL  ,
objectid  int                /* xmldt: i4 */
     NOT NULL  ,
name  nvarchar(1000)     /* xmldt: string */
        ,
CONSTRAINT test.xml_units_pk_1 PRIMARY KEY ( objectid, id),
)


Налицо бага SQLXMLBulkLoad, пишите багрепорт авторам, ну и либо создавайте объекты заранее, либо не используйте схему, либо не указывайте ключи :-)
17 ноя 15, 15:42    [18430114]     Ответить | Цитировать Сообщить модератору
 Re: SqlXmlBulkLoad использование схемы в имени таблицы  [new]
aleks2
Guest
Minamoto
пишите багрепорт авторам

Ты нашел - ты и пиши.
Мне недосуг.
18 ноя 15, 09:04    [18433294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить