удалить все таблицы из базы данных sql ce - PullRequest
3 голосов
/ 03 ноября 2010

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

спасибо за помощь

Ответы [ 4 ]

5 голосов
/ 03 ноября 2010

Вы можете использовать информацию SCHEMA для генерации скрипта:

select 'drop table ' || table_name || ';'
  from information_schema.tables;

Затем запустите этот скрипт.Вам может потребоваться запустить сценарий несколько раз, поскольку в SQLCE нет опции CASCADE (AFAIK).

1 голос
/ 03 ноября 2010

System.IO.File.Delete, а затем запустите необходимые сценарии CREATE TABLE

0 голосов
/ 16 августа 2016

Вот как я это делаю:

  1. Использование SQL Server Compact / SQLite Toolbox в Visual Studio, щелкните правой кнопкой мыши файл .sdf и выберите СценарийБаза данных> Схема базы данных сценариев ...
  2. Сохранить как CreateTables.sqlce
  3. Вставить в консоль PowerShell следующее:

    function GenerateDropScript($DbSchemaFile)
    {
        function Reverse($inputArr)
        { 
            $arr = @($inputArr)
            [array]::Reverse($arr)
            return $arr
        }
        $TableNames = Get-Content $DbSchemaFile |
            ? { $_.StartsWith('CREATE TABLE') } |
            % { $_.Substring(14).Replace('] (', '') }
        $ReverseNames = Reverse($TableNames)
    
        "Generating DROP script for all tables in: `n`t$DbSchemaFile`n"
    
        $ReverseNames | % { "DROP TABLE [$_]; GO;" }
    }
    
  4. Выполнить GenerateDropScript CreateTables.sqlce

Это прочитает сценарий CREATE и сгенерирует сценарии DROP для всех таблиц в обратном порядке их создания, поэтому вы не получите никакой зависимостиошибки.

0 голосов
/ 03 ноября 2010

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

...