首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么将存储过程返回的结果带列名导出到文本

2012-02-19 
如何将存储过程返回的结果带列名导出到文本如何将存储过程返回的结果带列名导出到文本[解决办法]CREATE PR

如何将存储过程返回的结果带列名导出到文本
如何将存储过程返回的结果带列名导出到文本

[解决办法]
CREATE PROC F
@page INT
AS
BEGIN
DECLARE @sql VARCHAR(1000)
SET @sql = 'SELECT TOP '+CAST(@page AS VARCHAR)+' * FROM sysobjects'
EXEC(@sql)
END
GO



DECLARE @s nvarchar(4000)
SELECT @s='BCP "EXEC DBO.F 20" QUERYOUT c:\bcp.txt /T /c'
EXEC master..xp_cmdshell @s

DROP PROC F

NULL
开始复制...
NULL
已复制了 20 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共 15
NULL

(所影响的行数为 7 行)
[解决办法]
有参数时用字符串加起来
exec('exec master..xp_cmdshell .....')
[解决办法]
可以用一种比较投机取巧的方法,你看一下合不合适“
CREATE PROC F 
@page INT 
AS 
BEGIN 
DECLARE @sql VARCHAR(1000) 
--先把你的列名写出来再通过union 与你的结果合起来
SET @sql =' select 列名1,列名2,....,列名n union '+ 'SELECT TOP '+CAST(@page AS VARCHAR)+ ' * FROM sysobjects ' 
EXEC(@sql) 
END 
GO 

DECLARE @s nvarchar(4000) 
SELECT @s= 'BCP "EXEC DBO.F 20" QUERYOUT c:\bcp.txt /T /c ' 
EXEC master..xp_cmdshell @s 

DROP PROC F 

热点排行