2012-11-28 11 views
5

मैं MSSQL में 2008 R2 प्रबंधन स्टूडियो एक साझा नेटवर्क पर एक csv फ़ाइल के लिए एक SELECT कथन के परिणाम लिखने के लिए इस तरह कोड का उपयोग कर रहा:रिक्त लाइनों: बाहर आदेश

SET NOCOUNT ON; 
GO  
:OUT \\163.123.45.678\SomeFolder\mydata.csv  
SELECT id, name, surname FROM sometable;  
GO 

यह सही स्थान पर mydata.csv फ़ाइल बनाता है लेकिन सीएसवी फ़ाइल के अंत में एक अतिरिक्त खाली रेखा है। मैं उस रिक्त रेखा को सीएसवी फ़ाइल में कैसे बनाया जा सकता हूं?

क्या उपरोक्त क्वेरी को पाठ फ़ाइल में आउटपुट लिखने का सबसे अच्छा तरीका है? मैं बीसीपी का उपयोग नहीं कर सकता।

धन्यवाद।

+0

जब भी मैं इसे चलाता हूं, तो मैं यहां वही परिणाम देखता हूं। मेरा विचार यह है कि यह "जिस तरह से यह काम करता है" है। एसएसआईएस का उपयोग कर सकते हैं? – PseudoToad

+0

ऐसा लगता है कि खाली रेखा "एक्स पंक्तियों प्रभावित" संदेश का हिस्सा है जो एनओसीएएस बंद होने पर प्रदर्शित की जाएगी। – luisdev

+0

क्या आप sqlcmd का उपयोग कर सकते हैं? –

उत्तर

1

मुझे लगता है कि आप क्वेरी परिणाम प्राप्त करने के लिए एसएसआईएस पैकेज का उपयोग कर सकते हैं .एसएसवी प्रारूप। कभी-कभी आपको दो लिस्ने के बीच खाली रेखा या स्थान मिल सकता है, उस मामले में 'व्युत्पन्न कॉलम' परिवर्तन कार्य और अवांछित रिक्त स्थान और रेखाओं को हटा या ट्रिम करें।

0

क्या आप कमांड प्रॉम्प्ट से निम्न कोशिश कर सकते हैं?

C:\>sqlcmd -S SQLServerHost -W -Q "SET NOCOUNT ON; SELECT TOP 5 date_id, previous_date, next_date FROM dates WHERE month_key = 201212" > testNoLine.txt 

परिणाम:

enter image description here

उत्पन्न फ़ाइल तल पर बिना किसी अतिरिक्त लाइन (SSMS निष्पादन के विपरीत) है।

+0

एमएसडीएन लिंक (http://msdn.microsoft.com/en-us/library/ms162773(v=sql.105).aspx) डब्ल्यू पैरामीटर के लिए स्विच प्रदान नहीं कर रहा है। अंतर के लिए एक और कारण ओएलई डीबी बनाम नेट क्लाइंट है - शायद उनमें से एक हर समय एक अतिरिक्त लाइन लौट रहा है? – milivojeviCH

0

अंत में एक एसएसआईएस पैकेज का उपयोग करना एक बेहतर समाधान था।

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