Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Лесен начин за програмно получаване на всички съхранени процедури

Можете да използвате SMO за това. Първо, добавете препратки към тези сборки към вашия проект:

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

Те се намират в GAC (прегледайте папката C:\WINDOWS\assembly).

Използвайте следния код като пример за скриптиране на съхранени процедури:

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT INTO @TABLE EXEC @query със SQL Server 2000

  2. Оператор на агрегат за умножение в SQL

  3. Добавяне на акаунт в база данни за поща към профил (T-SQL)

  4. Какви са плюсовете и минусите на запазването на SQL в Stored Procs срещу Code

  5. Как да вмъкна няколко реда в SQL с помощта на съхранени процедури?