2013-09-05 141 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