Создать таблицу Стандартное определение - PullRequest
0 голосов
/ 28 ноября 2018

Я использую эту таблицу INFORMATION_SCHEMA.ROUTINES , в которой содержится определение процедуры для процедур и функций, мне было интересно, существует ли подобная таблица для создания таблицы и создания подпрограмм представления.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы можете использовать sys.sql_modules, чтобы найти определение представлений.Для таблиц один вариант - объекты SMO.Приведенный ниже пример C # возвращает DDL для таблицы в указанной базе данных.Для этого потребуются ссылки на пространства имен Microsoft.SqlServer.Management.Sdk.Sfc, Microsoft.SqlServer.Smo и Microsoft.SqlServer.ConnectionInfo.System.Collections.Specialized также используется, но только для StringCollection в этом примере.Это может быть отфильтровано с использованием свойства Name класса Table, как указано ниже.

        //set source server and database using SMO objects
        Server srv = new Server(@"YourServer");
        //for Windows Authentication
        srv.ConnectionContext.LoginSecure = true;
        srv.ConnectionContext.StatementTimeout = 600;

        Database db = srv.Databases["YourDatabase"];

        //configure Scripter for DDL
        Scripter script = new Scripter(srv);
        ScriptingOptions scriptOpt = new ScriptingOptions();

        //this can changed to views, stored procedures, or other objects
        foreach (Table t in db.Tables)
        {
            //check for system objects
            //use t.Name to check table name if needed
            if (!t.IsSystemObject)
            {
                StringCollection sc = t.Script(scriptOpt);
                foreach (string s in sc)
                {
                    //DDL is here, it can accessed/used as needed 
                    Console.WriteLine(s);
                }
            }
        }
0 голосов
/ 28 ноября 2018

Я бы просто пропустил использование INFORMATION_SCHEMA.ROUTINES полностью.Вместо этого посмотрите на sys.sql_modules .Он имеет ddl для всего, что вы ищете, кроме таблиц.Но мой вопрос: зачем вам нужен ddl для всех этих вещей?

...