2016-07-25 5 views
1

1つのデータベースに100個のテーブルがあります。 100のうちいくつかのテーブルはHouse, House1, House2 , HouseXYZのような名前を持っています。mySQLとMsSQLに必要な文字列が含まれている場合は、すべてのテーブル名を新しい名前に変更するSQLスクリプト

今度はHouseHomeに置き換えるために、MySQLとMsSQLにスクリプトを書きたいと思います。だから私のデータベースはテーブル名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%' 
関連する問題