我正在使用SQL Server,我想构建一个动态SQL语句。我有几个数据库是彼此的精确克隆,例如TestDatabase1与TestDatabase2等相同。由于所有克隆数据库中的模式和表完全相同,我想执行更新每个表的SQL语句。这是伪代码:
for each table x in a test database
update x.SomeColumn
我有代码来抓取数据库:
SELECT name
FROM sys.databases
WHERE name LIKE '%Test%'
但现在我不知道如何处理这些数据。如何更新每个数据库中的每个表?
答案 0 :(得分:0)
您可以使用sp_MSforeachtable
针对数据库中的每个表运行Update语句。例如:
-- First set the database you want to use:
USE TempDatabase1
GO
EXEC sp_MSforeachtable 'UPDATE ? SET SomeColumn = 2'
GO
USE TempDatabase2
GO
EXEC sp_MSforeachtable 'UPDATE ? SET SomeColumn = 2'
GO