Это более теоретический вопрос, поскольку я не могу использовать его в это время. Но можете ли вы CREATE TABLE
из XML. Например, если я бегуМожете ли вы создать таблицу из XML
select TABLE_CATALOG AS '@number',
* from INFORMATION_SCHEMA.COLUMNS
order by 1
For XML Path ('root')
Я получаю XML отсчет, как это для каждого типа данных в таблице
<root number="testdb">
<TABLE_CATALOG>testdb</TABLE_CATALOG>
<TABLE_SCHEMA>dbo</TABLE_SCHEMA>
<TABLE_NAME>tb_Population</TABLE_NAME>
<COLUMN_NAME>ID</COLUMN_NAME>
<ORDINAL_POSITION>1</ORDINAL_POSITION>
<IS_NULLABLE>YES</IS_NULLABLE>
<DATA_TYPE>varchar</DATA_TYPE>
<CHARACTER_MAXIMUM_LENGTH>6</CHARACTER_MAXIMUM_LENGTH>
<CHARACTER_OCTET_LENGTH>6</CHARACTER_OCTET_LENGTH>
<CHARACTER_SET_NAME>iso_1</CHARACTER_SET_NAME>
<COLLATION_NAME>SQL_Latin1_General_CP1_CS_AS</COLLATION_NAME>
</root>
Могу ли я взять этот XML и сделать что-то вроде этого
CREATE TABLE [dbo].[xmlTest]
From declare @XML xml =
'<root number="testdb">
<TABLE_CATALOG>testdb</TABLE_CATALOG>
<TABLE_SCHEMA>dbo</TABLE_SCHEMA>
<TABLE_NAME>tb_Population</TABLE_NAME>
<COLUMN_NAME>ID</COLUMN_NAME>
<ORDINAL_POSITION>1</ORDINAL_POSITION>
<IS_NULLABLE>YES</IS_NULLABLE>
<DATA_TYPE>varchar</DATA_TYPE>
<CHARACTER_MAXIMUM_LENGTH>6</CHARACTER_MAXIMUM_LENGTH>
<CHARACTER_OCTET_LENGTH>6</CHARACTER_OCTET_LENGTH>
<CHARACTER_SET_NAME>iso_1</CHARACTER_SET_NAME>
<COLLATION_NAME>SQL_Latin1_General_CP1_CS_AS</COLLATION_NAME>
</root>'
Очевидно, что это совсем не правильно, но вы получаете эту идею. Я просто хочу знать, можно ли буквально запустить инструкцию create table для xml. Я мог видеть, что это используется, возможно, если вы хотите воссоздать структуру таблицы из одного db в другой, но они являются разрозненными системами или что-то в этом роде. Или, может быть, я не знаю, о чем, черт возьми, я тоже говорю :-)
Используете ли вы SQL Server или MySQL? Основываясь на коде, я думаю, что это синтаксис TSQL? – lad2025
Создать: не то, что я мог найти. Нагрузка: да. [MySQL: load-xml] (https://dev.mysql.com/doc/refman/5.5/en/load-xml.html) – Alderin