Sql 数据导出到XMl 与 从XML导入到数据库
2010-05-27 20:15
543 查看
1、导出到XMl select * from Brand for xml auto ,root('Brands')
<Brands>
<Brand BrandID="E584596D-4D66-4F2F-B6F7-71C3BEB4CA21" Name="inganico" />
<Brand BrandID="19B04451-DDC4-4CDF-BE30-CB4E703B27DA" Name="安付达" />
<Brand BrandID="3C6C8E12-7C4A-4F19-B491-4C0A64A48303" Name="安智" />
<Brand BrandID="BF6C361A-8993-4660-A89D-EB32CCC9CE49" Name="百富" />
<Brand BrandID="8E7FE420-3AE3-4017-80AB-B53CA29C80CA" Name="海博通" />
<Brand BrandID="505C5565-08C5-4EF5-9316-55CA76C1E9F3" Name="惠尔丰" />
<Brand BrandID="E5BA2A72-B1D1-457A-9AFD-A9D9B336E7C0" Name="利普门" />
<Brand BrandID="1982A195-5263-45CC-B872-96F3C145FCCD" Name="联迪" />
<Brand BrandID="E460CDA6-4A83-4C62-B049-3B980516AD79" Name="瑞柏" />
<Brand BrandID="06BACF99-BB7E-447C-B021-CD8C3FFAE85A" Name="萨基姆" />
<Brand BrandID="165510D9-342D-4402-882D-0A00DBFDAAE3" Name="新大陆" />
<Brand BrandID="2FA88654-2311-4C51-85B1-A39077C34C6D" Name="新国都" />
</Brands>
2、将上边XML内容导回 数据库
CreatePROCEDURE [dbo].[P_BrandSynchronization]
@xmlDocument NVARCHAR (MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @docHandle int
set @xmlDocument='<Brands>'+@xmlDocument+'</Brands>'
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
declare @BrandID uniqueidentifier
declare @Name varchar(16) , @message varchar(500)
declare mycursor cursor for (SELECT * FROM OPENXML (@docHandle,'/Brands/Brand',1)
WITH (
BrandID uniqueidentifier,
Name varchar(16)
))
open mycursor
FETCH NEXT FROM mycursor INTO @BrandID,@Name
while(@@FETCH_STATUS = 0)
BEGIN
if not exists(select 1 from brand where brandId =@BrandID)
begin
insert into Brand(BrandID,Name) values(@BrandID,@Name)
end
else
update Brand set BrandID=@BrandID,Name=@Name where BrandID=@BrandID
FETCH NEXT FROM mycursor INTO @BrandID,@Name
END
--select @message
close mycursor
DEALLOCATE mycursor
end
<Brands>
<Brand BrandID="E584596D-4D66-4F2F-B6F7-71C3BEB4CA21" Name="inganico" />
<Brand BrandID="19B04451-DDC4-4CDF-BE30-CB4E703B27DA" Name="安付达" />
<Brand BrandID="3C6C8E12-7C4A-4F19-B491-4C0A64A48303" Name="安智" />
<Brand BrandID="BF6C361A-8993-4660-A89D-EB32CCC9CE49" Name="百富" />
<Brand BrandID="8E7FE420-3AE3-4017-80AB-B53CA29C80CA" Name="海博通" />
<Brand BrandID="505C5565-08C5-4EF5-9316-55CA76C1E9F3" Name="惠尔丰" />
<Brand BrandID="E5BA2A72-B1D1-457A-9AFD-A9D9B336E7C0" Name="利普门" />
<Brand BrandID="1982A195-5263-45CC-B872-96F3C145FCCD" Name="联迪" />
<Brand BrandID="E460CDA6-4A83-4C62-B049-3B980516AD79" Name="瑞柏" />
<Brand BrandID="06BACF99-BB7E-447C-B021-CD8C3FFAE85A" Name="萨基姆" />
<Brand BrandID="165510D9-342D-4402-882D-0A00DBFDAAE3" Name="新大陆" />
<Brand BrandID="2FA88654-2311-4C51-85B1-A39077C34C6D" Name="新国都" />
</Brands>
2、将上边XML内容导回 数据库
CreatePROCEDURE [dbo].[P_BrandSynchronization]
@xmlDocument NVARCHAR (MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @docHandle int
set @xmlDocument='<Brands>'+@xmlDocument+'</Brands>'
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument
declare @BrandID uniqueidentifier
declare @Name varchar(16) , @message varchar(500)
declare mycursor cursor for (SELECT * FROM OPENXML (@docHandle,'/Brands/Brand',1)
WITH (
BrandID uniqueidentifier,
Name varchar(16)
))
open mycursor
FETCH NEXT FROM mycursor INTO @BrandID,@Name
while(@@FETCH_STATUS = 0)
BEGIN
if not exists(select 1 from brand where brandId =@BrandID)
begin
insert into Brand(BrandID,Name) values(@BrandID,@Name)
end
else
update Brand set BrandID=@BrandID,Name=@Name where BrandID=@BrandID
FETCH NEXT FROM mycursor INTO @BrandID,@Name
END
--select @message
close mycursor
DEALLOCATE mycursor
end
相关文章推荐
- 导出数据库到本地为sql格式,linux下执行导入sql数据
- [PL/SQL]导入文件内的数据到数据库(针对本博的导出存储过程)
- 黑马程序员_学习日记48_616数据库开发及ADO.Net(带参数的Sql语句、数据库与文本文件导入导出、省市联动、资料管理器、DataSet (ado.net断开式数据访问)、SQLHelper)
- 解决 在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程
- mysql导入导出sql文件 window下 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname >
- XML数据导入进数据库,和从数据导出XML数据
- 在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程
- 导出excel的数据拼接成sql导入到数据库中
- SQL 数据的导入导出,对远程(MSsql,OracleAccess,)数据库的操作以及读取Excel,txt文件中的数据
- xml与数据库中数据的导入导出
- 收藏点以备后用数据库将数据导入导出xml文件
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作-------sql方式
- Oracle 11g数据库使用pl/sql developer进行数据导入与导出
- pl/sql developer 导入导出数据库,包括函数,序列,表结构与数据
- 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法
- 在Oracle表数据和xml文件间相互导入导出的PL/SQL 过程
- 用SQL语句对数据库数据导入导出
- 用sql server导入导出功能 把excel导入到sql的表中,提示导入成功,但是数据库表中并没有数据?
- 数据库和Excel间数据互相导入导出的SQL方法
- mysql 执行 大数据 sql文件 与 集群结构 授权 数据库导出导入