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