Je sais que c'est similaire à this question, mais j'utilise SQL Server CE 3.5 avec un projet WinForms en C#. Comment puis-je déterminer si une table existe? Je sais que le mot-clé IF
n'est pas pris en charge, bien que EXISTS
l'est. Information_schema existe-t-il dans CE où je peux interroger? Merci.Déterminez si la table existe dans SQL Server CE?
Répondre
Oui, il existe:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
Est-ce que "SELECT COUNT (ID)" ne serait pas plus facile et un peu plus performant (dans le cas où la table est large (beaucoup de colonnes) ou haute (plusieurs lignes)? –
Cela dépend vraiment de la façon dont vous voulez le coder. vous voulez juste vérifier l'existence, alors oui, je voulais juste démontrer que INFORMATION_SCHEMA.TABLES est disponible peut être interrogé.Le reste est base SQL –
@MehrdadAfshari Go Persians !! –
Comme alternative, vous pouvez interroger la table et attraper l'exception jetée. S'il existe une exception, la table n'a pas été trouvée, sinon la table existe. Un petit et simple test de performance a de meilleurs résultats que le Query par rapport à INFORMATION_SCHEMA. Bien que je considérerais une requête contre INFORMATION_SCHEMA comme nettoyeur.
Si la table n'existe pas, cette méthode sera lancez une exception, donc vous ne devriez pas faire cela - attraper une exception n'est jamais le chemin à parcourir quand il y a une alternative propre. –
utilisant aide de la base de données:
var db = Database.Open("MyDatabase");
var sql = @"SELECT Count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'MyTable'"
var count = db.QueryValue(sql);
if(count.Equals(1)){
//table exists
}
- 1. Recherchez Crystal Reports dans Visual Studio et déterminez si la table/proc SQL est utilisée
- 2. Quelle est la meilleure façon de déterminer si une table temporaire existe dans SQL Server?
- 3. Déterminez la taille de la base de données SQL Server
- 4. Arrêter d'insérer dans la table si l'enregistrement existe déjà
- 5. Déterminez si une commande existe sur le système POSIX
- 6. Portable SQL pour déterminer si une table existe ou non?
- 7. SQL Server: table Pivot
- 8. SQL Server: Copie de la colonne dans la table
- 9. Données de langue japonais/chinois dans la table SQL Server
- 10. rétrécir ou compacter dans Sql Server CE?
- 11. Rechercher une table verrouillée dans SQL Server
- 12. indexation d'une grande table dans SQL SERVER
- 13. Table Diff dans SQL Server 2000
- 14. Création d'une table dans SQL Server Express
- 15. SQL Server - Insertion sélective de champs dans la table temporaire
- 16. SQL Server - Table dynamique PIVOT - Injection SQL
- 17. Comment puis-je déterminer si un rôle de base de données existe dans SQL Server?
- 18. Existe-t-il un audit DDL dans SQL Server 2000
- 19. ADO.Net Excel, Vérifier si une table existe?
- 20. SQL Server - Performances de requête sur la recherche de table
- 21. Convertir la table Postgis en SQL Server 2008
- 22. SQL Server 2005 - Si condition avec union
- 23. SQL Server Par question SQL Server 2005 CE
- 24. Comment vérifier si une procédure stockée existe dans SQL Azure?
- 25. Espace table SQL Server inutilisé mais alloué
- 26. Comment faire la mise à jour de la table CE Sql Server à partir d'une autre table
- 27. Déterminez si une connexion a été rompue
- 28. SQL Server Mgt Studio n'affiche pas la table?
- 29. SQL Server 2005 et la portée table temporaire
- 30. ce qui est le meilleur moyen d'obtenir la table Nombre d'enregistrements avec condition sur SQL Server
Je pensais avoir une mise en œuvre de nifty juste ce que le code était nécessaire pour cela, mais cela ne fonctionne pas pour moi. J'ai posté une question diesbezueglich à: http://social.msdn.microsoft.com/Forums/en-US/8ee6aefa-e47b-4f0c-8735-120b8bf041ec/why-is-my-sqlserver-ce-code-failing (J'ai essayé de le poster sur codeproject, mais il a gelé sur moi plusieurs fois) –
La troisième fois était un charme: http://www.codeproject.com/Questions/629607/Why-is-my-SQLServer-CE-code- Échec Oui, j'ai posté, mais à deux forums différents, donc j'espère que ce n'est pas considéré comme gauche. –