Таблица скриптов как CREATE TO с помощью vb.net

В SQL-сервере я могу создать таблицу, которая дублирует другую таблицу со всеми установленными в ней ограничениями. Для этого я могу использовать таблицу скриптов как CREATE TO в студии управления SQL-серверами. Затем я могу запустить скрипт в другой базе данных, чтобы воссоздать ту же таблицу, но без данных. Я хочу сделать то же самое, используя код vb.net. Важно отметить, что все ограничения и свойства таблицы установлены правильно.

Вы можете использовать узел SMO (объекты SQL Server Management Objects) для создания таблиц в строку внутри вашего приложения. Я использую C # здесь, но то же самое можно сделать и в VB.NET.

// Define your database and table you want to script out string dbName = "YourDatabase"; string tableName = "YourTable"; // set up the SMO server objects - I'm using "integrated security" here for simplicity Server srv = new Server(); srv.ConnectionContext.LoginSecure = true; srv.ConnectionContext.ServerInstance = "YourSQLServerInstance"; // get the database in question Database db = new Database(); db = srv.Databases[dbName]; StringBuilder sb = new StringBuilder(); // define the scripting options - what options to include or not ScriptingOptions options = new ScriptingOptions(); options.ClusteredIndexes = true; options.Default = true; options.DriAll = true; options.Indexes = true; options.IncludeHeaders = true; // script out the table's creation Table tbl = db.Tables[tableName]; StringCollection coll = tbl.Script(options); foreach (string str in coll) { sb.Append(str); sb.Append(Environment.NewLine); } // you can get the string that makes up the CREATE script here // do with this CREATE script whatever you like! string createScript = sb.ToString(); 

Вам нужно обратиться к нескольким узлам SMO.

Узнайте больше о SMO и о том, как использовать его здесь:

  • Начало работы с объектами управления SQL Server (SMO)
  • Сгенерировать скрипты для объектов базы данных с SMO для SQL Server
  • Записывать нуль в базе данных, если текстовые поля пусты
  • Ошибка: свойство ConnectionString не было инициализировано?
  • Ошибка Microsoft Visual Studio 2013: подпись метки времени и / или сертификат не могут быть проверены или искажены
  • Попытка извлечь изображение из SQL Server в .NET, получив UnauthorizedAccessException
  • Драйвер сервера ODBC SQL Server - Неверный синтаксис рядом с ошибкой «44444» - по методу recordset.UpdateBatch
  • Лучший способ позволить Пользователю определить заказ таблицы?
  • Неправильный синтаксис рядом с ',' (проблема dbnull)
  • Лучший подход к созданию согласованных форматов datetime между SQL Server и VB.Net
  • изменение записей таблицы SQL Server в верхний регистр (ввод vb.net в c #)
  • SQL «Вставить в» работает ... но не
  • Какое портативное устройство / ОС использовать для взаимодействия с приложением Win Forms / SQL Server Express?
  • Interesting Posts

    Круглые функции SQL Server 2014

    Можете ли вы / вы должны использовать SQL Server Service Broker с приложениями .NET?

    разделители строк и столбцов mssql

    Использует ли последовательность, в которой мы используем объединение в запросе, влияет на время ее выполнения?

    Вставка со сложным упорядоченным групповым счетчиком

    Как добавление некластеризованного индекса в таблицу приводит к операции поиска индекса?

    Как разделить дату на месяц

    SQL Server: почему файл журнала не обновляется с файлом базы данных в режиме полного восстановления?

    Обходной путь к RAISERROR с буферизацией NOWAIT

    SQL Query, чтобы вернуть верхние 2 значения

    Сохраненная процедура вставки значений в динамическую таблицу

    Эквивалент C # 'readonly' для столбца MS SQL?

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

    TSQL Определите каждую пятницу с «семенной» даты

    Когда начинать беспокоиться о строках в таблице базы данных

    Давайте будем гением компьютера.