मैं सोच रहा था कि क्या कोई मदद कर सकता है।
मेरे पास SQL में सभी क्वेरीज़ हैं (सभी अलग-अलग * .sql फ़ाइलों में)। मैं जानना चाहता था कि क्या इन प्रश्नों को स्वचालित रूप से चलाने का एक तरीका है या उन्हें एक csv या txt फ़ाइल में सहेजने के लिए चलाया जाता है?
इसके अलावा, मैं इन प्रश्नों के भीतर चर ले आया हूं, जिन्हें प्रश्नों को चलाने से पहले साप्ताहिक आधार पर संशोधित करने की आवश्यकता होगी।
धन्यवाद।
के.जे.
क्या आप चर के संबंध में कुछ अतिरिक्त सहायता प्रदान कर सकते हैं? पहले मैं घोषित करूंगा और चर को निम्नानुसार निर्धारित करूंगा:
DATETIME पर @TW_FROM DECLARE
DECTARE @TW_TO डेटाटाइम
SET @TW_FROM = '2015-11-16 00:00:00'; SET @TW_TO = '2015-11-22 23:00:00';
मैं sqlcmd का उपयोग कैसे करूं?
4 जवाब
हां, आप ऐसा करने के लिए sqlcmd का उपयोग कर सकते हैं।
सबसे पहले - चर। आप चर को निर्दिष्ट करने के लिए जहाँ भी आप $(variablename)
का उपयोग कर .sql फ़ाइलों में अपने चर का उल्लेख कर सकते हैं। उदाहरण के लिए,
use $(dbname);
select $(columnname) from table1 where column= '$(var1)'
फिर आप निम्न कमांड के साथ sqlcmd को कॉल करें (तर्क -v चर पर ध्यान दें)
sqlcmd -S servername -d database -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred"
इसे किसी फ़ाइल में आउटपुट करने के लिए, आप अंत में> filename.txt को टैग करते हैं
sqlcmd -S servername -d database -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" > filename.txt
यदि आप एक सीएसवी को आउटपुट करना चाहते हैं, तो आप तर्क -s का उपयोग करके सीमांकक को निर्दिष्ट कर सकते हैं (सर्वर के लिए पूंजी एस के साथ निष्क्रियता पर ध्यान दें)। तो अब हमारे पास है
sqlcmd -S servername -d database -s "," -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" > filename.csv
यदि आप एक ही csv या txt फ़ाइल में कई कमांड आउटपुट करना चाहते हैं, तो>> के बजाय> इसे फ़ाइल की तह नीचे जोड़ने के बजाय> का उपयोग करें।
sqlcmd -S servername -d database -s "," -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" >> filename.csv
इसे कई स्क्रिप्ट्स के लिए चलाने के लिए, आप स्टेटमेंट्स को एक बैच फ़ाइल में रख सकते हैं, और फिर हर हफ्ते वेरिएबल को बदल सकते हैं।
आप एक बैच फ़ाइल लिख सकते हैं जो sqlcmd का उपयोग करती है:
यह आपको स्क्रिप्ट फ़ाइलों को लूप में कॉल करने और परिणामों को फ़ाइल में आउटपुट करने की अनुमति देगा।
अपने वर्तमान स्क्रैप को संग्रहीत कार्यविधियाँ में कनवर्ट करें । इसके बाद आप अपने चर को पास कर सकते हैं और क्वेरी चला सकते हैं।
यदि आपके पास SQL सर्वर एजेंट उपलब्ध है (SQL मानक या बेहतर) तो आप इसका उपयोग संग्रहीत कार्यविधियों को चलाने के लिए कर सकते हैं।
अन्यथा विंडोज़ में टास्क शेड्यूलर के साथ ही इसे प्राप्त किया जा सकता है।
CSV पर निर्यात करने के लिए यह उपयोगी होगा।
यह निर्भर करता है कि आपका SQL सर्वर वास्तव में कहां चल रहा है। अपने इच्छित स्थान पर कुछ भी लिखना काफी मुश्किल हो सकता है।
आप BCP के बारे में पढ़ सकते हैं।
मेरा सुझाव है:
अपने डेटाबेस के भीतर अपने सभी प्रश्नों में से एक यूडीएफ (सर्वोत्तम इनलाइन-यूडीएफ!) बनाएं। EXCEL या किसी अन्य फिटिंग उत्पाद से उन्हें कॉल करें। आप एक एक्सेल सेट करना चाहते हैं जहाँ आपके सभी प्रश्न प्रत्येक शीट पर एक स्वचालित रूप से भरे जाते हैं
संबंधित सवाल
नए सवाल
sql-server
Microsoft SQL सर्वर एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। कॉम्पैक्ट, एक्सप्रेस, एज़्योर, फास्ट-ट्रैक, एपीएस (पूर्व में पीडीडब्ल्यू) और एज़्योर SQL डीडब्ल्यू सहित सभी SQL सर्वर संस्करणों के लिए इस टैग का उपयोग करें। अन्य प्रकार के DBMS (MySQL, PostgreSQL, Oracle, आदि) के लिए इस टैग का उपयोग न करें। सॉफ़्टवेयर और मोबाइल विकास के मुद्दों के लिए इस टैग का उपयोग न करें, जब तक कि यह सीधे डेटाबेस से संबंधित न हो।