2013-09-05 14 views
5

पर निर्यात मूल्यों को मैं SQL सर्वर से txt फ़ाइल में मान निर्यात करना चाहता हूं। मुझे बीसीपी के बारे में पता है, मुझे टेबल से डेटा निर्यात करने के लिए या तो क्वेरी या टेबल नाम देना होगा। मैं डेटा निर्यात नहीं करना चाहता हूं लेकिन मैं वैरिएबल को आवंटित मानों को निर्यात करना चाहता हूं। मैं यह कैसे कर सकता हूं, कोई मदद?एसक्यूएल सर्वर से txt फ़ाइल

+0

क्या आप 'निर्यात एक variable' करने के लिए सौंपा मूल्यों मतलब है ..? – user2339071

+0

उदाहरण के लिए: '@var int = 10' घोषित करें, मैं चाहता हूं कि 10 .txt फ़ाइल – niren

+0

प्रबंधन स्टूडियो में आप अपने आदेश टूलबार (या CTRL + T) से "टेक्स्ट टू परिणाम" विकल्प सेट कर सकते हैं और जो भी आप निष्पादित करते हैं क्वेरी विंडो में, परिणाम आपके उत्तर के लिए टेक्स्ट फ़ाइल –

उत्तर

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 फ़ाइल में निर्यात मूल्य कैसे कर सकता हूं, लेकिन मैंने आपके द्वारा दिए गए प्रश्न को बीसीपी' निर्यात के साथ निष्पादित करने का प्रयास किया लेकिन यह काम नहीं कर रहा है, क्या कोई और तरीका है जो मैं कर सकता हूं। – niren

+0

मुझे कहीं और मिला: EXEC मास्टर..XP_CMDSHELL 'बीसीपी "[क्वेरीस्टेटमेंट]" क्वेरीआउट "सी: \ spt_values.dat" क्या आपने क्वेरीआउट विकल्प का उपयोग किया था? – Wietze314

+0

यह काम कर रहा है अगर मैं इस तरह उपयोग करता हूं: @cmd varchar (1000) घोषित करें @sql varchar (8000) @cmd = '"DECLARE @ var1 int; SELECT @ var1 = 10; चुनें @ var1"' चुनें @sql = 'बीसीपी' + @ सेमीडी + 'क्वेरीआउट I: \ file \ mytest.txt -c -t -T -S यमुना \ SQLEXPRESS'; exec xp_cmdshell @sql; लेकिन मैं घोषित करता हूं और – niren

संबंधित मुद्दे