2010-11-03 8 views

Répondre

5

Vous pouvez utiliser les informations SCHEMA pour générer un script:

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

Ensuite, exécutez le script. Vous devrez peut-être exécuter le script plusieurs fois, car il n'existe aucune option CASCADE (AFAIK) dans SQLCE.

+0

1 - J'étais FAÇON l'enfer hors CE puisque est si différent de SQL Server – JNK

+0

au cas où quelqu'un est toujours à la recherche en 2015 - «[ » script mis à jour pourrait être select « drop table » + t.TABLE_SCHEMA + + t.table_name + '];' à partir de information_schema.tables t; – torm

+0

@torm SQL Compact n'a pas de schéma! – ErikEJ

0

Vous pouvez également déposer une base de données et la créer à nouveau, mais elle effacera toute votre configuration, ce qui peut ne pas être la meilleure option.

1

System.IO.File.Delete puis exécutez le nécessite de créer des scripts TABLE

+1

Vous voulez en savoir plus? Alors ... supprimer le fichier entier? Je veux juste reconstruire la base de données chaque fois que j'exécute des tests. Supprimer le fichier .sdf semble être une mauvaise idée. – vbullinger

0

Voici comment je le fais:

  1. En utilisant SQL Server Compact/SQLite Toolbox dans Visual Studio, cliquez-droit sur le fichier sdf et sélectionnez Database Script> Script Database Schema ...
  2. Enregistrer comme CreateTables.sqlce
  3. Collez le texte suivant dans une console 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. Run GenerateDropScript CreateTables.sqlce

Cela va lire le script pour créer et générer des scripts DROP pour toutes les tables dans l'ordre inverse ils sont créés, de sorte que vous ne recevez pas d'erreur de dépendance.

Questions connexes