2016-07-25 19 views
1

У меня есть одна база данных с 100 таблицами. из 100 таблиц имеют имя House, House1, House2 , HouseXYZ и так далее.SQL-скрипт для переименования всех имен таблиц с новым именем, если он содержит обязательную строку в mySQL и MsSQL

Теперь я хочу написать сценарий в MySQL и MsSQL, чтобы заменить House на Home. Поэтому моя база данных должна иметь имя таблицы Home, Home1, Home2, HomeXYZ и так далее.

+0

Вы уверены, что хотите сделать что? Любые существующие объекты, которые ссылаются на любые таблицы, потеряют ссылку. т.е. вам придется редактировать каждую функцию, процедуру, триггер ... – scsimon

+1

Возможный дубликат [Переименовать все таблицы в базе данных] (http://stackoverflow.com/questions/2008412/rename-all-tables-in-database) – scsimon

+0

Да, я должен это сделать. Я должен сделать то же самое со столбцами. – user2425779

ответ

0

Как уже упоминалось here вы бы вы могли бы сделать это для ваших имен таблиц:

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%'