Структура таблицы копий SMO, но не значения по умолчанию

1

Я пытаюсь скопировать таблицы (структура не данных) с помощью объекта Transfer. Я не хочу копировать значения по умолчанию в столбцах, поскольку у них есть хранимые процедуры, которые я не хочу ссылаться в них, и, следовательно, сбрасывает передачу.

Может ли кто-нибудь сказать мне, как копировать таблицы, а не их ограничения по умолчанию?

        Transfer transfer = new Transfer(sourceDatabase);
        transfer.CopyAllObjects = false;
        transfer.CopyData = false;
        transfer.CopyAllTables = false;
        transfer.DestinationDatabase = destinationDatabase.Name;
        transfer.DestinationServer = sourceServer.Name;

        foreach (Table sourceTable in sourceDatabase.Tables)
        {
            transfer.ObjectList.Add(sourceTable);
        }

        transfer.TransferData();

благодаря

  • 0
    С конца Sql вы можете использовать этот select * into newtable from existingtable where 1=0
Теги:
sql-server
smo

1 ответ

0

Этот код будет копировать только определения таблиц с его первичными ключами, незавершающими ключами и индексами, но без каких-либо связей между таблицами.

Transfer transfer = new Transfer(sourceDatabase);   

transfer.DestinationLoginSecure = sourceServer.DestinationLoginSecure;
transfer.DestinationLogin = sourceServer.ConnectionContext.Login;
transfer.DestinationPassword = sourceServer.ConnectionContext.Password;

transfer.DestinationDatabase = destinationDatabase.Name;
transfer.DestinationServer = sourceServer.Name;

transfer.CopyAllObjects = false;
transfer.CopyAllTables = false;
transfer.CopySchema = true;
transfer.DropDestinationObjectsFirst = true;

transfer.Options.WithDependencies = false;
transfer.Options.ContinueScriptingOnError = true;
transfer.Options.DriAll = false;
transfer.Options.DriDefaults = false;
transfer.Options.DriIndexes = true;
transfer.Options.DriPrimaryKey = true;
transfer.Options.DriUniqueKeys = true;
transfer.Options.DriForeignKeys = false;
transfer.Options.IncludeIfNotExists = true;

foreach (Table sourceTable in sourceDatabase.Tables)
{
    transfer.ObjectList.Add(sourceTable);
}

transfer.TransferData();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню