इसके लिए आप एसएमओ का इस्तेमाल कर सकते हैं। सबसे पहले, अपने प्रोजेक्ट में इन असेंबली के संदर्भ जोड़ें:
- Microsoft.SqlServer.ConnectionInfo
- Microsoft.SqlServer.Smo
- Microsoft.SqlServer.SmoEnum
वे जीएसी में स्थित हैं (सी:\ विन्डोज़ \ असेंबली फ़ोल्डर में ब्राउज़ करें)।
संग्रहीत कार्यविधियों को स्क्रिप्ट करने के उदाहरण के रूप में निम्न कोड का उपयोग करें:
using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.SqlServer.Management.Smo;
class Program
{
static void Main(string[] args)
{
Server server = new Server(@".\SQLEXPRESS");
Database db = server.Databases["Northwind"];
List<SqlSmoObject> list = new List<SqlSmoObject>();
DataTable dataTable = db.EnumObjects(DatabaseObjectTypes.StoredProcedure);
foreach (DataRow row in dataTable.Rows)
{
string sSchema = (string)row["Schema"];
if (sSchema == "sys" || sSchema == "INFORMATION_SCHEMA")
continue;
StoredProcedure sp = (StoredProcedure)server.GetSmoObject(
new Urn((string)row["Urn"]));
if (!sp.IsSystemObject)
list.Add(sp);
}
Scripter scripter = new Scripter();
scripter.Server = server;
scripter.Options.IncludeHeaders = true;
scripter.Options.SchemaQualify = true;
scripter.Options.ToFileOnly = true;
scripter.Options.FileName = @"C:\StoredProcedures.sql";
scripter.Script(list.ToArray());
}
}
यह भी देखें:SQL Server:SMO Scripting Basics ए> ।