Sql 更新整个数据库中特定列的所有出现项

Sql 更新整个数据库中特定列的所有出现项,sql,sql-server,updates,Sql,Sql Server,Updates,我在许多表中使用了Asset表和assetid(列) 我想更新数据库中所有插入项中所有出现的表 assetid(列)其中值从数据库中的所有表中为878到1 我知道正常的更新 update AdminInterests set assetid = 1 where 878 我只想知道如何在所有表中的整个数据库中应用更新。一个潜在的解决方案是,您可以读取数据库元数据表并构建一个动态查询,以查找所有要更新的列/属性,然后对它们运行更新。要做到这一点需要做大量的工作,但确实提供了一个解决方案。它也是一个

我在许多表中使用了Asset表和assetid(列)

我想更新数据库中所有插入项中所有出现的表

assetid(列)其中值从数据库中的所有表中为878到1

我知道正常的更新

update AdminInterests set assetid = 1 where 878

我只想知道如何在所有表中的整个数据库中应用更新。一个潜在的解决方案是,您可以读取数据库元数据表并构建一个动态查询,以查找所有要更新的列/属性,然后对它们运行更新。要做到这一点需要做大量的工作,但确实提供了一个解决方案。它也是一个编程解决方案,而不是一个可以通过查询来完成的解决方案。

一个潜在的解决方案是,您可以读取数据库元数据表并构建一个动态查询,以查找所有要更新的列/属性,然后对它们运行更新。要做到这一点需要做大量的工作,但确实提供了一个解决方案。它也是一个编程解决方案,而不是一个可以通过查询来完成的解决方案。

您可以使用此查询来创建所有需要的
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
语句

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
语句

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
语句

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'

Wow-Thank查询还显示了有多少表使用了assetid列,共13列。看来我得执行我自己的命令了不客气!是的,您必须手动执行update语句。如果希望自动执行动态SQL,您可以创建一个动态SQL@Baganaakhow Thank查询还显示了表中使用assetid列的数量总计13。看来我得执行我自己的命令了不客气!是的,您必须手动执行update语句。如果希望在@Baganaakh自动执行动态SQL,则可以创建动态SQL