Sql server SQL Server格式文件-我可以用来生成CREATETABLE语句吗?

Sql server SQL Server格式文件-我可以用来生成CREATETABLE语句吗?,sql-server,xml,reverse-engineering,ddl,bcp,Sql Server,Xml,Reverse Engineering,Ddl,Bcp,我得到了35个SQL Server格式文件(xml和非xml)和相关数据文件。我没有创建35个表所需的DDL 有没有办法对格式文件进行反向工程以生成CREATETABLE语句?我知道我可以查看每个文件并手动执行此操作,但尝试查看是否有更简单的方法…假设您的bcp xml格式文件与此类似: <?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/for

我得到了35个SQL Server格式文件(xml和非xml)和相关数据文件。我没有创建35个表所需的DDL


有没有办法对格式文件进行反向工程以生成CREATETABLE语句?我知道我可以查看每个文件并手动执行此操作,但尝试查看是否有更简单的方法…

假设您的bcp xml格式文件与此类似:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="4"/>
  <FIELD ID="2" xsi:type="NativePrefix" PREFIX_LENGTH="1"/>
  <FIELD ID="3" xsi:type="CharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="3" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharPrefix" PREFIX_LENGTH="8" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="5" xsi:type="CharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="150" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="Id" xsi:type="SQLINT"/>
  <COLUMN SOURCE="2" NAME="Type" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="3" NAME="Language" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="4" NAME="Value" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="5" NAME="Subject" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>
然后,您可以将数据打包到新创建的表中

BULK INSERT [#myTable] FROM 'C:\table.dat' WITH (KEEPIDENTITY, DATAFILETYPE='native', FORMATFILE = 'C:\table.xml');

当然有。XML格式的文件将是最简单的。您有数据类型及其长度。。。所以你有桌子。创建一个格式文件-整个页面将帮助您对于非xml,您可以将它们粘贴到Excel中,并使用公式为您生成代码。粗糙但有效。你能把格式文件放在我们可以访问的地方吗?
BULK INSERT [#myTable] FROM 'C:\table.dat' WITH (KEEPIDENTITY, DATAFILETYPE='native', FORMATFILE = 'C:\table.xml');