*
存為XML
將表/查詢存儲為標准的XML文件
*/
/*調用示例 用SQL用winows身份驗證的情況
exec p_savexml @sql=
地區資料
@fname=
c:\地區資料
xml
用指定的用戶
exec p_savexml @sql=
地區資料
@fname=
c:\地區資料
xml
@userid=
sa
*/
if exists (select * from dbo
sysobjects where id = object_id(N
[dbo]
[p_savexml]
) and OBJECTPROPERTY(id
N
IsProcedure
) =
)
drop procedure [dbo]
[p_savexml]
GO
create proc p_savexml
@sql varchar(
)
要保存的表/視圖/SQL查詢語句
@fname varchar(
)=
c:\tmp
xml
保存的XML文件名
@userid varchar(
)=
用戶名
如果為nt驗證方式
則為
@password varchar(
)=
密碼
as
declare @err int
@src varchar(
)
@desc varchar(
)
declare @obj int
@constr varchar(
)
if isnull(@userid
)=
set @constr=
Provider=SQLOLEDB
;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=
+db_name()+
;Data Source=
+@@servername
else
set @constr=
Provider=SQLOLEDB
;Persist Security Info=True;
+
User ID=
+@userid+
;Password=
+isnull(@password
)
+
;Initial Catalog=
+db_name()+
;Data Source=
+@@servername
exec @err=sp_oacreate
adodb
recordset
@obj out
if @err<>
goto lberr
exec @err=sp_oamethod @obj
open
null
@sql
@constr
if @err<>
goto lberr
set @sql=
del
+@fname
exec master
xp_cmdshell @sql
no_output
exec @err=sp_oamethod @obj
save
null
@fname
if @err<>
goto lberr
exec @err=sp_oadestroy @obj
return
lberr:
exec sp_oageterrorinfo
@src out
@desc out
select cast(@err as varbinary(
)) as 錯誤號
@src as 錯誤源
@desc as 錯誤描述
go
From:http://tw.wingwit.com/Article/os/youhua/201401/30199.html