using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
प्रश्नों को निष्पादित करने के लिए आपको एसएमओ की आवश्यकता नहीं होनी चाहिए। इसके बजाय SqlCommand ऑब्जेक्ट का उपयोग करने का प्रयास करें। बयानों का उपयोग करके इन्हें हटा दें। क्वेरी निष्पादित करने के लिए इस कोड का उपयोग करें:
SqlConnection conn = new SqlConnection(sqlConnectionString);
SqlCommand cmd = new SqlCommand(script, conn);
cmd.ExecuteNonQuery();
साथ ही, एसएमओ के प्रोजेक्ट संदर्भ को हटा दें। नोट:आप संसाधनों को ठीक से साफ करना चाहेंगे।
अपडेट करें:
ADO.NET लाइब्रेरी 'GO' कीवर्ड का समर्थन नहीं करते . ऐसा लगता है कि आपके विकल्प हैं:
- स्क्रिप्ट को पार्स करें। 'GO' कीवर्ड हटाएं और स्क्रिप्ट को अलग-अलग बैचों में विभाजित करें। प्रत्येक बैच को अपने स्वयं के SqlCommand के रूप में निष्पादित करें।
- शेल में SQLCMD को स्क्रिप्ट भेजें (डेविड एंड्रेस का जवाब)।
- ब्लॉग पोस्ट के कोड की तरह SMO का उपयोग करें।
दरअसल, इस मामले में, मुझे लगता है कि एसएमओ सबसे अच्छा विकल्प हो सकता है, लेकिन आपको यह पता लगाना होगा कि डीएलएल क्यों नहीं मिला।