在多个模式中更改具有相同名称的表

时间:2015-11-26 05:48:45

标签: mysql sql database

我在同一个mysql服务器中的100个不同模式中有相同名称(name-xxx)的表。 我想通过使用单个脚本来更改所有名为xxx的表(没有硬编码 脚本中的模式名称)

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:

DECLARE @alterQ NVARCHAR(max)
DECLARE @table_name VARCHAR(45)

DECLARE tables_curs CURSOR FOR
  SELECT t.table_name
    FROM INFORMATION_SCHEMA.TABLES t
   WHERE t.table_name = 'xxx'
     AND t.table_catalog = 'db_name'

OPEN tables_curs 
FETCH tables_curs INTO @table_name

WHILE @@Fetch_Status = 0
BEGIN 

  SET @table_name  = N'ALTER TABLE @table_name ...'
  EXEC sp_executesql @alterQ

END

CLOSE tables_curs 
DEALLOCATE tables_curs