SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

SQL सर्वर प्रबंधन स्टूडियो में SQLCMD मोड क्या है?

मैंने कुछ और शोध किया है, इसलिए अब तक जो लिखा गया है उसे विस्तारित करने के लिए इसकी मेरी समझ यहां दी गई है:

एसक्यूएलसीएमडी क्या है

SQLCMD.exe SQL सर्वर 2005 और उच्चतर की स्थापना में शामिल एक कंसोल उपयोगिता है। आप इसे आमतौर पर c:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE जैसे पथ में ढूंढ सकते हैं। ।

यह एक सरल स्क्रिप्टिंग वातावरण है जो SQL सर्वर से संबंधित कार्यों के स्वचालन की अनुमति देता है। उदाहरण के लिए, आप एक स्क्रिप्ट लिख सकते हैं और निष्पादित कर सकते हैं जो SQL सर्वर के एक विशिष्ट उदाहरण में लॉगिन करेगा, इस कनेक्शन पर किसी दिए गए निर्देशिका से स्क्रिप्ट निष्पादित करेगा और आउटपुट को एक निर्दिष्ट फ़ाइल में संग्रहीत करेगा।

Invoke-Sqlcmd cmdlet को SQL Server 2008 के साथ इस उपकरण को एक मानकीकृत, Powershell-आधारित दृष्टिकोण के साथ बदलने के लिए एक साधन के रूप में पेश किया गया था, जिसमें अधिकांश मूल सिंटैक्स और कार्यक्षमता को संरक्षित किया गया था।

SSMS में SQLCMD मोड क्या है

SSMS में, SQLCMD मोड एक स्क्रिप्ट निष्पादन मोड है जो sqlcmd.exe वातावरण का अनुकरण करता है और इसलिए कुछ आदेशों को स्वीकार करता है जो T-SQL भाषा का हिस्सा नहीं हैं। sqlcmd.exe के विपरीत , यह SqlClient . का उपयोग करके डेटाबेस से संपर्क करता है (उसी तरह SSMS), नहीं ODBC डेटा प्रदाता, इसलिए कुछ पहलुओं में इसका व्यवहार sqlcmd.exe . से भिन्न हो सकता है ।

SQLCMD मोड में स्क्रिप्ट निष्पादित करना sqlcmd.exe के लिए विशिष्ट कमांड का उपयोग करने की अनुमति देता है वातावरण। हालाँकि, SQLCMD मोड के लिए कोई IntelliSense या डिबगिंग समर्थन नहीं है, इसलिए SQLCMD- विशिष्ट कोड के साथ स्वच्छ T-SQL को मिलाने वाली स्क्रिप्ट को बनाए रखना एक दर्द हो सकता है। इसलिए, इसका उपयोग तभी किया जाना चाहिए जब यह आवश्यक हो।

उदाहरण उपयोग केस

मान लें कि किसी कंपनी के पास डेटाबेस के लिए नामकरण परंपरा है जिसमें नाम में पर्यावरण शामिल है, उदाहरण के लिए:MyDb_उत्पाद , MyDb_परीक्षण , MyDb_देव . इस कन्वेंशन का उपयोग गलतियों की संभावना को कम करने के लिए किया जा सकता है। ।

जब कोई डेवलपर टी-एसक्यूएल स्क्रिप्ट लिखता है, तो उसे परिनियोजन/परीक्षण प्रक्रिया में विभिन्न वातावरणों में निष्पादित करना होगा, जिसके लिए कोड के कई संस्करणों की आवश्यकता होगी:

 SELECT *
 FROM [MyDb_Dev].[dbo].[MyTable1] -- MyDb_Dev -> MyDb_Test -> MyDb_Prod

इसके बजाय, हम यह मान सकते हैं कि डेटाबेस नाम को परिनियोजन प्रक्रिया में SQLCMD चर के रूप में प्रदान किया जाएगा और सभी परिवेशों में ठीक उसी फ़ाइल को परिनियोजित किया जाएगा:

 -- :setvar databaseName "MyDb_Dev" -- uncomment for testing in SSMS

 SELECT *
 FROM [$(databaseName)].[dbo].[MyTable1]

(इस सरल उदाहरण में डेटाबेस नाम को पूरी तरह से छोड़ा जा सकता है, लेकिन यदि आपके पास क्रॉस-डेटाबेस जॉइन है, तो डेटाबेस नाम का उपयोग करना आवश्यक है)



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SSMS एक्स्टेंसिबिलिटी / एडिन - वर्तमान डेटाबेस और सर्वर प्राप्त करें

  2. SQL सर्वर प्रबंधन स्टूडियो के लिए स्रोत नियंत्रण प्रदाता के रूप में git का उपयोग कैसे करें

  3. क्या मैं 2008 डीबी के लिए SQL सर्वर प्रबंधन स्टूडियो 2005 का उपयोग कर सकता हूं?

  4. मैं चयनित तालिका से शीर्ष 1000* का चयन करने के लिए कीबोर्ड शॉर्टकट कैसे प्रोग्राम कर सकता हूं?

  5. क्या SQL क्वेरी से परिणाम को सीधे संपीड़ित/ज़िप करने का कोई तरीका है?