Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Prosty sposób na programowe pobranie wszystkich procedur składowanych

Możesz do tego użyć SMO. Przede wszystkim dodaj odniesienia do tych zestawów do swojego projektu:

  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Smo
  • Microsoft.SqlServer.SmoEnum

Znajdują się one w GAC (przejdź do folderu C:\WINDOWS\assembly).

Użyj poniższego kodu jako przykładu skryptowych procedur składowanych:

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());
   }
}

Zobacz też:SQL Server:podstawy skryptów SMO .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data serwera SQL Format kolumny

  2. Pobieranie liczby i wierszy w tym samym zapytaniu

  3. Pobierz schemat kolumn tabeli SQL z typem danych i maksymalną długością w wartości liczbowej

  4. Przygotuj nową maszynę wirtualną dla SQL Server 2014 CTP1

  5. Konwertuj milisekundy UTC na DATETIME w serwerze SQL