首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

SQL Server 将数据导出为XML和Json

2023-11-13 来源:花图问答

    在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML。通过该命令可以将二维关系结果集转换为XML,通过BCP就可以将数据存为XML了。

    例如下面的数据:

技术图片

 

    我们可以通过如下BCP命令(注意不能有回车)将其导出为XML文件,并保存:

BCP "SELECT TOP 30 [bom_no],[LEVEL] FROM [sqladmin].[dbo].[bom] FOR XML path,TYPE, ELEMENTS ,ROOT(‘RegionSales‘)" QUERYOUT "d:empest.XML" -c -t -T -S localhost

 

    技术图片

 

    执行完成后查看Test.XML文件,如下图所示。可以看到文件格式非常清晰,很容易就可以导入到其他系统了。

技术图片

 

数据导出为JSON

 

   如果希望将SQL Server中数据导出为Json,虽然这种操作在应用程序里已经有非常成熟的方法,但SQL Server其实并没有原生支持这种方式(小道消息,下个版本会支持)。我推荐使用这篇帖子的方式:http://jaminquimby.com/servers/95-sql/sql-2008/145-code-tsql-convert-query-to-json来做。将该帖子所提供的存储过程建立完成后,使用如下BCP命令:

技术图片

 

    执行完成后,得到结果如下图:

技术图片

SQL Server 将数据导出为XML和Json

标签:convert   数据   region   存储   queryout   部门   导入   通过   tle   

小编还为您整理了以下内容,可能对您也有帮助:

SQL Server中如何将查询结果转换为Json格式脚本

SELECT LEFT(Result, LEN(Result) - 1)

FROM ( SELECT ( SELECT

'{col1:' + col1 + '' ,

',col2:' + col2 + '},'

FROM table1

FOR

XML PATH('')

) AS Result

) AS t

col1,col2 是字段名 table1 是表名

SQL2008如何用作业将查询结果导出,以及作业导入XML文件

1、打开 SQL server企业管理器,新建查询,在窗口中输入查询语句并执行。

2、全选查询的结果,选择“连同标题一起复制”,然后打开EXCEL,新建Excel表格,进行粘贴即可。

3、或者在全选查询结果之后,直接选择“将结果另存为”,选择对应的保存格式。

4、如果要自动实现这一过程,需要自行编写程序,连接SQL数据库,查询,保存查询数据到指定格式的文件中。追问大虾,我需要的是自动,你给我手动复制。不是我想要的,不过还是谢了

SQLServer中数据导入导出三种方法

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

  在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。

  一、使用方式的比较

  1. 使用Transact-SQL进行数据导入导出

  我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

  SELECT * INTO table2 FROM table1 --table1和table2的表结构相同

  INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同

  当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。

  在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。

  (1) 调用方式不同。

  OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE(...)后进行引用。

  在SQL Server中通过OPENDATASOURCE查询Access数据库abc.mdb中的table1表

以下是引用片段:
  SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
  'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=abc.mdb;Persist Security
  Info=False')...
  table1

OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

  在SQL Server中通过OPENROWSETE查询Access数据库abc.mdb中的table1表

以下是引用片段:
  SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'abc.mdb';
  'admin';'','SELECT * FROM table1')

SQLServer中数据导入导出三种方法

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

  在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。

  一、使用方式的比较

  1. 使用Transact-SQL进行数据导入导出

  我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

  SELECT * INTO table2 FROM table1 --table1和table2的表结构相同

  INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同

  当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。

  在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。

  (1) 调用方式不同。

  OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE(...)后进行引用。

  在SQL Server中通过OPENDATASOURCE查询Access数据库abc.mdb中的table1表

以下是引用片段:
  SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
  'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=abc.mdb;Persist Security
  Info=False')...
  table1

OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

  在SQL Server中通过OPENROWSETE查询Access数据库abc.mdb中的table1表

以下是引用片段:
  SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'abc.mdb';
  'admin';'','SELECT * FROM table1')

怎样从SQLServer中导出数据?

材料/工具:SQL Server

1、打开SQL Server,找到需要导出的数据库。

2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。

3、SQL Server导入和导出向导窗口中,单击下一步按钮。

4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。

5、选择使用SQL Server身份验证,输入用户名和密码,选择要导出的数据库,单击下一步。

6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。

7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。

8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。

9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。

10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。

11、选择源表和源视图对话框中,选择自己要导出的表和视图。

12、运行包对话框中,单击完成按钮,数据就成功导出了。

怎样从SQLServer中导出数据?

材料/工具:SQL Server

1、打开SQL Server,找到需要导出的数据库。

2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。

3、SQL Server导入和导出向导窗口中,单击下一步按钮。

4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。

5、选择使用SQL Server身份验证,输入用户名和密码,选择要导出的数据库,单击下一步。

6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。

7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。

8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。

9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。

10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。

11、选择源表和源视图对话框中,选择自己要导出的表和视图。

12、运行包对话框中,单击完成按钮,数据就成功导出了。

请教大神,如何在SQL SERVER下将查询结果转为Json格式上传到http://192....

通过C#的ado.net连接数据库,把查询结果序列化为json字符串,然后通过IO把json字符串写入本地的文本文件,在通过ftp把刚刚生成的文本文件上传到192.168.1.2/Test即可。

请教大神,如何在SQL SERVER下将查询结果转为Json格式上传到http://192....

通过C#的ado.net连接数据库,把查询结果序列化为json字符串,然后通过IO把json字符串写入本地的文本文件,在通过ftp把刚刚生成的文本文件上传到192.168.1.2/Test即可。

sql怎么把xml转换

1.怎么用SQL语言把XML文件编辑成表格

select * from 表名 for xml

以下是详细介绍:

FOR 子句

FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。

语法

[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }

[ , XMLDATA ]

[ , ELEMENTS ]

[ , BINARY BASE64 ]

}

]

参数

BROWSE

指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。

说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 <lock_hint> HOLDLOCK。

FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。

2.如何把数据库的表弄成xml格式

方法:

点击Excel左上角按钮,在弹出的选项中,点击“另存为”

或者直接在Excel中按下快捷键F12

2、选择最后一项:其他格式。

3、接下来,重命名一下文件名,并选择文件类型为:

XML数据(*.xml)

4、点击“保存”按钮,会出现如下错误警告:

因为工作簿不包含任何XML映射,所以无法保存任何XML数据。

单击“帮助”以获取详细信息。

5、这个原因是我们的工作簿只是普通的Excel数据,的确没有做过XML映射,或者Excel数据也不是从XML文件导入的。

这时,我们尝试另存为另一种文件类型:

XML电子表格2003(*.xml)

6、点击保存按钮。

7、这时会弹出一个兼容性对话框,问你是否保持工作簿的这种格式。

8、点击“是”,即可将Excel保存为XML格式的文档了。

我们使用软件打开这个XML文档(例如通过Chrome浏览器),发现格式正常,Excel数据也全在里面。

3.怎么能用SQL语句把查询结果转换给定格式的XML文件

在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:

SQL> DECLARE

result CLOB;

xmlstr VARCHAR2(32767);

line VARCHAR2(2000);

line_no INTEGER :=1;

4.sql中xml怎么使用

using System;

using System.Xml;

public class Test

{

public static void Main(string[] args)

{

string xml = @"<a>b</a>";

XmlDocument doc = new XmlDocument();

doc.LoadXml(xml);

XmlNode node = doc.SelectSingleNode("a");

XmlNode sqlNode = doc.CreateElement("sql");

sqlNode.InnerText = "Select * From T_User Where Name = '楼主'";

node.AppendChild(sqlNode);

doc.Save(Console.Out);

}

}

5.怎么把数据库信息转换成XML文件

如果是Sql2005以上版本就简单了。

SELECT TOP 10 * FROM dbo.UserInfo

FOR XML PATH('UserInfo'),ROOT ('UserList')

就会生成以下XML

PATH里面的字符串生成行标签

ROOT生成根标签

administrator21小张

administrator21小张

administrator21小张

6.怎样从数据库导出数据转换XML

1。

建立jdbc-odbc连接 2。在定义变量中,写入XML文件路径(在eclipse的编写) 3。

建立数据库(以下DB为Users ),建表(以下表为users) 4。代码如下import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;public class append { public static void main(String[] args) {try{ DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc=builder.parse(args[0]);记得定义你的XML路径 doc.normalize(); Element root = doc.getDocumentElement(); accessDB(doc,root); if(doc != null) printNode(root); TransformerFactory tf=TransformerFactory.newInstance(); Transformer transformer=tf.newTransformer(); DOMSource source=new DOMSource(doc); StreamResult result= new StreamResult(new File(args[0])); transformer.transform(source,result);}catch(Exception e){ e.printStackTrace();} }public static void createXML(Document doc,Element root,ResultSet rs){ try{ boolean flag=rs.next(); while(flag){ Element Users=doc.createElement("Users"); Element userid=doc.createElement("userid"); Text userid_text=doc.createTextNode(""+rs.getInt("userid")); userid.appendChild(userid_text); Element username =doc.createElement("username"); Text username_text=doc.createTextNode(rs.getString("username")); username.appendChild(username_text); Element password =doc.createElement("password"); Text password_text=doc.createTextNode(rs.getString("password")); password.appendChild(password_text); Users.appendChild(userid); Users.appendChild(username); Users.appendChild(password); root.appendChild(Users); flag=rs.next(); } } catch(SQLException e){ e.printStackTrace(); }}public static void accessDB(Document doc , Element root){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:yourBDconName"/*URL*/ ); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from users"); createXML(doc,root,rs); rs.close(); stmt.close(); conn.close(); }catch(Exception e){ e.printStackTrace(); }} public static void printNode(Element element){ NodeList children=element.getChildNodes(); NamedNodeMap attr=element.getAttributes(); int r=children.getLength(); if(attr!=null){ System.out.print("<"+element.getNodeName()); for(int j=0;j"+"\n"); } else if(attr==null){ System.out.print("<"+element.getNodeName()+">"); } if(element.hasChildNodes()){ for(int k=0;k "+"\n"); }}。

如何将数据库中数据源生成xml文件 sql server

List<Area> list = a.GetAllAreaById(id);

//将list集合序列化到流中

MemoryStream stream = new MemoryStream();

XmlSerializer s = new XmlSerializer(typeof(List<Area>));

s.Serialize(stream, list);

//将流转换成字节数组,再解码为字符串

string ss = System.Text.Encoding.UTF8.GetString(stream.ToArray());

XmlDocument dom = new XmlDocument();

dom.LoadXml(ss);

Response.ContentType = "text/xml";

Response.Charset = "utf-8";

HttpContext.Current.Response.Write(dom.OuterXml);

显示全文