Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sqlXmlBulkLoader и автогенерация таблиц схемы - как бы там Identity наколдовать? / 3 сообщений из 3, страница 1 из 1
18.04.2021, 12:50
    #40063556
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlXmlBulkLoader и автогенерация таблиц схемы - как бы там Identity наколдовать?
1. sqlXmlBulkLoader умеет сам создавать таблицы по схеме XSD.
И это - хорошо.

2. sqlXmlBulkLoader умеет грузить данные в готовые таблицы со столбцом Identity.
И это тоже хорошо.

НО!
Может тут есть великие гуру, знающие тайную кляузу XSD, которая заставит sqlXmlBulkLoader СОЗДАТЬ столбец Identity при создании таблицы по схеме.

Вот простейшая, рабочая схема. Для примера.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" 
           xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
>

  <xs:element name="root" 
              sql:relation="Ping" 
              sql:overflow-field="OverflowColumn"
              sql:key-fields="health_status"
  >
    <xs:complexType>
      <xs:sequence>

        <xs:element name="health_status" nillable="true" minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(128)">
          <xs:complexType>
            <xs:simpleContent msdata:ColumnName="health_status_Text" msdata:Ordinal="1">
              <xs:extension base="xs:string" >
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>

    </xs:complexType>
  </xs:element>

</xs:schema>



По ней генерируется таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE [dbo].[Ping](
	[OverflowColumn] [ntext] NULL,
	[health_status] [nvarchar](128) NOT NULL
 CONSTRAINT [Ping_pk_1] PRIMARY KEY CLUSTERED 
(
	[health_status] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY



Чо бы такое в схему написать, чтобы в таблице, внезапно, возник столбец с Identity?
...
Рейтинг: 0 / 0
18.04.2021, 18:59
    #40063607
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlXmlBulkLoader и автогенерация таблиц схемы - как бы там Identity наколдовать?
aleks222
2. sqlXmlBulkLoader умеет грузить данные в готовые таблицы со столбцом Identity.
...
заставит sqlXmlBulkLoader СОЗДАТЬ столбец Identity при создании таблицы по схеме.
А если столбец в схеме sql:identity, sqlXmlBulkLoader не будет создавать соотв. атрибут у поля?
https://docs.microsoft.com/ru-ru/sql/relational-databases/sqlxml-annotated-xsd-schemas-using/using-the-sql-identity-and-sql-guid-annotations?view=sql-server-2017
...
Рейтинг: 0 / 0
18.04.2021, 19:25
    #40063611
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlXmlBulkLoader и автогенерация таблиц схемы - как бы там Identity наколдовать?
alexeyvg
aleks222
2. sqlXmlBulkLoader умеет грузить данные в готовые таблицы со столбцом Identity.
...
заставит sqlXmlBulkLoader СОЗДАТЬ столбец Identity при создании таблицы по схеме.
А если столбец в схеме sql:identity, sqlXmlBulkLoader не будет создавать соотв. атрибут у поля?
https://docs.microsoft.com/ru-ru/sql/relational-databases/sqlxml-annotated-xsd-schemas-using/using-the-sql-identity-and-sql-guid-annotations?view=sql-server-2017


Увы, при автогенерации таблицы по схеме sql:identity="ignore" НИЧЕГО не делает. Это для "уже существующего".
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sqlXmlBulkLoader и автогенерация таблиц схемы - как бы там Identity наколдовать? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]