2013-09-05 17 views
5

Chcę eksportować wartości z SQL Server do pliku txt. Wiem o BCP, tam muszę podać albo zapytanie albo nazwę tabeli, aby wyeksportować dane z tabeli. Nie chcę eksportować danych, ale chcę eksportować wartości przypisane do zmiennej. Jak mogę to zrobić, jakąkolwiek pomoc?Eksportuj wartości z SQL Server do pliku txt

+0

Co masz na myśli przez 'eksportowych wartości przypisanych do variable' ..? – user2339071

+0

dla np .: 'declare @var int = 10', chcę, aby 10 było tam w pliku .txt – niren

+0

W Management Studio możesz ustawić opcję" Wyniki na tekst "z paska narzędzi poleceń (lub CTRL + T) i cokolwiek wykonasz w oknach zapytań, wyniki przejdą do pliku tekstowego –

Odpowiedz

5

Użyj zapytania, aby zebrać zmienne, które chcesz wyeksportować. Coś takiego:

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 

Użyj tej instrukcji zapytania w poniższym poleceniu. Użyj zapytania i zastąp [querystatement] powyższym stwierdzeniem lub użyj zmiennej dla ciągu zapytania.

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

Jeśli zmienna musi być zadeklarowane poza stwierdzeniem:

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

Nie mogę znaleźć sposobu na eksportowanie wartości do pliku .txt w twojej odpowiedzi, ale próbowałem wykonać zapytanie, które podałeś z eksportem 'BCP', ale to nie działa, Czy jest jakiś inny sposób, w jaki mogę to zrobić. – niren

+0

Znalazłem gdzieś indziej: EXEC master..XP_CMDSHELL 'bcp "[querystatement]" queryout "c: \ spt_values.dat"' Użyłeś opcji queryout? – Wietze314

+0

Działa Jeśli używam tego w ten sposób: deklaruj @ cmd varchar (1000) deklaruj @sql varchar (8000) ustaw @ cmd = '"DECLARE @ var1 int; SELECT @ var1 = 10; wybierz @ var1"' SELECT @sql = "bcp" + @ cmd + "queryout I: \ File \ mytest.txt -c -t -T -S YAMUNA \ SQLEXPRESS"; exec xp_cmdshell @sql; Ale chcę zadeklarować i przypisać zmienną '@ var1' poza cudzysłowami – niren

Powiązane problemy