One possible solution, as stated in the question, is to use the catalog to get the names of the tables that you want to update and to generate a set of update statements that will be finally executed using sp_executesql . For example:
DECLARE @nomeColuna NVARCHAR(50) = 'aMinhaColuna' -- nome da coluna que pretende actualizar
DECLARE @sql NVARCHAR(MAX) = ''
SELECT @sql = @sql + 'UPDATE ' + t.name + ' SET ' + @nomeColuna + ' = ''QualquerCoisa'';'
FROM sys.columns c
INNER JOIN sys.tables t
ON c.object_id = t.object_id
WHERE c.name = @nomeColuna
EXEC sp_executesql @sql
Additionally, I recommend using QUOTENAME as a measure to mitigate potential issues with columns that contain "special characters."
Here's a small example in SQL Fiddle .
Note: This solution assumes that the database does not have a very large number of tables. In this case you can change the solution to use a loop / loop.