如何将存储过程返回的结果带列名导出到文本
如何将存储过程返回的结果带列名导出到文本
------解决方案--------------------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