更新整个数据库中特定列的所有出现
Update all occurence of a specific column in entire database
我有资产 table 和 assetid(列)在许多 table 中使用
我想更新数据库中所有插入事件中出现的所有 tables
assetid(列)WHERE 值有 878 比 1 FROM all tables 在数据库中
我知道正常更新
update AdminInterests set assetid = 1 where 878
我只想了解如何在所有 table 中通过整个数据库应用更新
一个可能的解决方案是,您可以读取数据库元数据表并构建一个动态查询以查找您想要更新的所有 columns/attributes,然后 运行 针对它们进行更新。这样做需要做很多工作,但确实提供了解决方案。它也是一种编程解决方案,而不是您可以通过查询完成的解决方案。
您可以使用此查询来创建所有需要的 UPDATE
语句。
SELECT 'UPDATE ' + T.TABLE_SCHEMA + '.' + T.TABLE_NAME + ' SET assetid = 1 where asssetid = 878;'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C
ON T.TABLE_NAME = C.TABLE_NAME
AND c.COLUMN_NAME ='assetid'
然后你可以执行那些 UPDATE
语句。
我有资产 table 和 assetid(列)在许多 table 中使用
我想更新数据库中所有插入事件中出现的所有 tables
assetid(列)WHERE 值有 878 比 1 FROM all tables 在数据库中
我知道正常更新
update AdminInterests set assetid = 1 where 878
我只想了解如何在所有 table 中通过整个数据库应用更新
一个可能的解决方案是,您可以读取数据库元数据表并构建一个动态查询以查找您想要更新的所有 columns/attributes,然后 运行 针对它们进行更新。这样做需要做很多工作,但确实提供了解决方案。它也是一种编程解决方案,而不是您可以通过查询完成的解决方案。
您可以使用此查询来创建所有需要的 UPDATE
语句。
SELECT 'UPDATE ' + T.TABLE_SCHEMA + '.' + T.TABLE_NAME + ' SET assetid = 1 where asssetid = 878;'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C
ON T.TABLE_NAME = C.TABLE_NAME
AND c.COLUMN_NAME ='assetid'
然后你可以执行那些 UPDATE
语句。