Existe-t-il une commande unique ou une ligne pour modifier toutes les tables d'une base de données. Je voudrais émettre cette commande dans chaque table d'une base de données:
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8;
Mon objectif est de modifier le jeu de caractères de latin1 à utf8 pour toutes les tables.
MISE À JOUR: RDBMS est MySQL
Non, il n'y a pas une telle commande. Mais ce que vous pouvez faire est d'écrire une requête rapide pour générer le SQL pour vous comme ceci:
USE INFORMATION_SCHEMA;
SELECT
CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` CONVERT TO CHARACTER SET UTF8;")
AS MySQLCMD FROM TABLES
WHERE TABLE_SCHEMA = "your_schema_goes_here";
Ensuite, vous pouvez exécuter la sortie à partir de cela pour faire ce dont vous avez besoin.
Sources:
http://forums.mysql.com/read.php?20,244395,244421#msg-244421
Le moyen le plus simple: exporter la base de données. Ouvrez la base de données exportée dans un éditeur de texte et effectuez une recherche/remplacement par "UTF8" ou autre. Réimportez la base de données modifiée.
Si vous travaillez avec MS SQL Server, il existe une procédure stockée non documentée ms_foreachtable que vous pouvez utiliser. Utilisez remplacer le nom de la table par un? dans la déclaration.
Donc, dans votre exemple
EXEC ms_foreachtable 'ALTER TABLE [?] .....'