2015-11-26 127 views
1

我在同一個mysql服務器中有100個不同模式的同名(name-xxx)表。 我想用一個腳本來改變一個名爲XXX的所有表(沒有硬編碼 腳本架構名稱)在多個模式中改變具有相同名稱的表

+0

隨着信息給出一個選項是使用[13.6.6遊標](https://dev.mysql.com/doc/refman/5.7/en/cursors.html)和[13.5 SQL語法的預處理語句](http://dev.mysql。 COM/DOC/refman/5.7/EN/SQL語法制備-statements.html)。 – wchiquito

回答

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 
+0

MySQL或MSSQL? – wchiquito

相關問題