2013-09-05 90 views
5

我想从SQL Server导出值到txt文件。我知道BCP,我需要给出查询或表名来从表中导出数据。我不想导出数据,但我想导出分配给变量的值。我该怎么做,有什么帮助?从SQL Server导出值到txt文件

+0

你说的'分配给variable'出口值的意思..? – user2339071

+0

例如:'declare @var int = 10',我想要10位于.txt文件中 – niren

+0

在Management Studio中,您可以在命令工具栏(或CTRL + T)中设置“Results to Text”在查询窗口中,结果将转到文本文件 –

回答

5

使用查询来收集想要导出的变量。类似这样的:

DECLARE @var1 INTEGER 
DECLARE @var2 INTEGER 

SELECT @var1 = 10 
SELECT @var2 = 22 

SELECT 'variable 1' AS VarName, @var1 AS VarValue 
UNION 
SELECT 'variable 2' AS VarName, @var2 AS VarValue 

在以下命令中使用此查询语句。使用查询并将[querystatement]替换为上面的语句,或者使用查询字符串的变量。

EXEC master..XP_CMDSHELL 'bcp "[querystatement]" queryout "c:\spt_values.dat"' 

如果变量需要声明之外声明:

DECLARE @cmd varchar(1000) 
DECLARE @sql varchar(8000) 
DECLARE @var1 int 
SELECT @var1 = 10 
SET @cmd='"select '+CAST(@var1 AS VARCHAR(10))+'"' 
SELECT @sql = 'bcp '[email protected]+' queryout I:\File\mytest.txt -c -t -T -S YAMUNA\SQLEXPRESS'; 
exec xp_cmdshell @sql; 
+0

我不知道如何在您的答案中将值导出为.txt文件,但我尝试执行您使用'BCP'导出给出的查询,但它不起作用,有没有其他方法可以做到这一点。 – niren

+0

我在其他地方找到了: EXEC master..XP_CMDSHELL'bcp“[querystatement]”查询输出“c:\ spt_values.dat”' 您是否使用了查询选项? – Wietze314

+0

它正在工作如果我使用像这样:declare @cmd varchar(1000)declare @sql varchar(8000)set @cmd ='“DECLARE @ var1 int; SELECT @ var1 = 10; select @ var1”'SELECT @sql = 'bcp'+ @ cmd +'queryout I:\ File \ mytest.txt -c -t -T -S YAMUNA \ SQLEXPRESS'; exec xp_cmdshell @sql;但是我想声明和分配变量'@ var1'在引号 – niren