2009-01-21 5 views
1

Je suis en train d'essayer de migrer mon site ASPNET vers Django. Toutes mes données actuelles sont attachées dans MS SQL Server sur un hôte partagé qui (utilement) ne supporte pas python ... Je pourrais utiliser mon code existant pour exporter toutes les données mais j'ai également arrêté d'utiliser Windows. Le site est principalement compilé VB.NET, donc j'ai besoin d'installer Windows et Visual Studio et ensuite comprendre ce que j'essaie de faire ... Je n'aime pas ce plan.Liste des noms de tables

Plutôt que de passer par que mal de tête, je voudrais utiliser PHP pour exporter la base de données entière (ou une table à la fois) à JSON. SimpleJSON en Python va le rendre ridiculement facile à importer, cela ressemble à un plan.

Jusqu'ici, tout va bien. En PHP, j'ai réussi à me connecter au SQL Server et à effectuer des requêtes simples, mais j'ai besoin d'une liste de tables pour savoir quelles données j'ai besoin de copier. Je veux toutes les tables car il y a des tables héritées de quand j'ai réécrit le site il y a environ trois ans, et j'aimerais garder ces données quelque part ...

Donc tout d'abord: Est-ce que quelqu'un sait la requête SQL pour liste toutes les tables?

J'ai essayé mssql_query('sp_tables'); mais retourne une liste étrange:

mydatabasename 
mydatabasename 
dbo 
dbo 
syscolumns 
syscolumns 
SYSTEM TABLE 
SYSTEM TABLE 

Deuxièmement: À votre avis, je serais mieux d'écrire chaque décharge de table à son propre fichier .json ou devrais-je garder tous ensemble?

Troisièmement: est-ce que je vais à ce sujet dans le mauvais sens?

Répondre

6
Select table_name from information_schema.tables 

pour une table donnée, vous pouvez obtenir les métadonnées avec

sp_help tablename 
+0

Il retourne la même liste que ci-dessus = \ – Oli

+0

Annuler cela. J'étais un crétin en PHP. Merci! – Oli

+0

np, content de pouvoir aider. De plus, je ferais un fichier par table (quel que soit le format d'exportation) mais cela pourrait être une préférence personnelle plutôt que supérieure de quelque façon que ce soit. – cmsjr

1

Vous ne requête avec: (. Vous devez sélectionner DB avant cette)

SHOW TABLES; 

+0

Ceci est pour MySQL, pas pour Microsoft SQL Server. –

0

vous pouvez essayer ceci

SELECT * FROM information_schema.tables 
Questions connexes