1
我在同一個mysql服務器中有100個不同模式的同名(name-xxx)表。 我想用一個腳本來改變一個名爲XXX的所有表(沒有硬編碼 腳本架構名稱)在多個模式中改變具有相同名稱的表
我在同一個mysql服務器中有100個不同模式的同名(name-xxx)表。 我想用一個腳本來改變一個名爲XXX的所有表(沒有硬編碼 腳本架構名稱)在多個模式中改變具有相同名稱的表
你可以嘗試這樣的事情:
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
MySQL或MSSQL? – wchiquito
隨着信息給出一個選項是使用[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