日期:2014-05-17  浏览次数:20859 次

SQL语句将表中的数据导出为xml文件。
USE test
GO

CREATE TABLE test_blan(x VARCHAR(100),y VARCHAR(100))
GO

INSERT INTO test_blan 
SELECT 'a','a' UNION ALL
SELECT 's','s' UNION ALL
SELECT 'd','d' UNION ALL
SELECT 'f','f' UNION ALL
SELECT 'g','g' UNION ALL
SELECT 'q','q' UNION ALL
SELECT 'w','w' UNION ALL
SELECT 'e','e' UNION ALL
SELECT 'r','r' UNION ALL
SELECT 't','t' UNION ALL
SELECT 'y','y' 

CREATE VIEW test_log AS SELECT 'root' l 

CREATE TABLE TT(aa XML )

DECLARE @x XML

SET @x = (SELECT * FROM test_log IRoot,test_blan IData FOR XML AUTO) 
INSERT TT VALUES (@x)

EXEC [master].sys.xp_cmdshell 'bcp TT out E:/123.xml -c -T -k'


当我执行最后一句 xp_cmdshell存储过程时报错,这个存储过程我已经开启了。报错信息如下:
SQLState = S0002, NativeError = 208
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]对象名 'TT' 无效。
NULL

------解决方案--------------------
试试直接用查询:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM test_log IRoot,test_blan IData FOR XML AUTO" queryout E:\123.xml -c -T -k'
------解决方案--------------------
无效 'TT'