J'ai une base de données contenant 100 tables. sur 100 certaines tables ont un nom comme House, House1, House2 , HouseXYZ
et ainsi de suite. Maintenant, je veux écrire un script en MySQL et MsSQL pour remplacer le House
avec Home
. Donc, ma base de données devrait avoir le nom de la table Home, Home1, Home2, HomeXYZ
et ainsi de suite.Script SQL pour renommer tous les noms de table avec un nouveau nom s'il contient la chaîne requise dans mySQL et MsSQL
1
A
Répondre
0
Comme mentionné here vous vous feriez cela pour vos noms de table:
select 'exec sp_rename @objname=' + name + ', @newname=' + replace(name ,'House', 'Home')
from sysObjects
where type = 'U'
0
--MSSQL
SELECT 'exec sp_rename @objname=' + NAME + ', @newname=' + replace(NAME, 'House', 'Home')
FROM sysObjects
WHERE type = 'U'
AND NAME LIKE 'House%'
--MYSQL
SELECT CONCAT (
'ALTER TABLE '
,table_name
,' RENAME '
,replace(table_name, 'House', 'Home')
)
FROM information_schema.tables
WHERE table_name LIKE 'House%'
Vous êtes sûr que vous voulez faire cette? Tous les objets existants qui référencent des tables perdront la référence. c'est-à-dire que vous devrez éditer toutes les fonctions, procédures, déclencheurs ... – scsimon
Copie possible de [Renommer toutes les tables dans la base de données] (http://stackoverflow.com/questions/2008412/rename-all-tables-in-database) – scsimon
oui, je dois le faire. Je dois faire de même avec les colonnes. – user2425779