如何更新數據庫所有表中名為“ModifiedBy”的所有列

內存

我需要從數據庫中刪除所有個人數據。許多表都有一個“ModifiedBy”列,其中包含用戶的電子郵件。

是否有一種方便的方法來迭代數據庫中具有 ModifiedBy 列的每個表並運行如下更新:

UPDATE [TableName] 
SET [ModifiedBy] = CONVERT (
   nvarchar(max), 
   HASHBYTES('SHA', CONCAT('MY_SALT_VALUE', [ModifiedBy])), 
   2
)
若羅夫

基於sys.columns,sys.tablessys.schemas系統視圖的動態語句是一種可能的選擇:

DECLARE @stm nvarchar(max)
DECLARE @err int

SELECT @stm = STRING_AGG(
   CAST(CONCAT(
      N'UPDATE ',
      QUOTENAME(sch.[name]), N'.', QUOTENAME(tab.[name]),
      N' SET ', 
      QUOTENAME(col.[name]), N' = CONVERT (nvarchar(max), HASHBYTES(''SHA'', CONCAT(''MY_SALT_VALUE'', ',
      QUOTENAME(col.[name]), N')), 2)'
   ) AS nvarchar(max)),
   '; '
)
FROM sys.columns col
JOIN sys.tables tab ON col.object_id = tab.object_id
JOIN sys.schemas sch ON tab.schema_id = sch.schema_id
WHERE col.[name] = 'ModifiedBy' 

PRINT @stm
EXEC @err = sp_executesql @stm
IF @err <> 0 PRINT 'Error found'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何將 Pandas 數據幀列中的所有值轉換為帶有計數的新列?

如何獲取數據表中的所有值

對雪花雲數據倉庫中的所有表啟用更改跟踪

用於更改數據庫或架構中的所有表的雪花 SQL 過程

如何為 dask 元中的所有(超過 20.000)列指定相同的數據類型?

具有重複條目但所有列不匹配、為空或有更正的數據表

如何將數據框中的所有 0 (0%) 替換為 0

在 PostgreSQL 中關閉 fsync 是否會損壞所有數據庫或僅我正在使用的特定表

如何在ABAP中修改數據庫表中現有記錄的數據?

如何更新表所有行中的列?

如何在不從參考節點獲取所有數據的情況下獲取 Firebase 數據庫中的隨機鍵?

獲取所有數據塊工作區集群中已安裝庫的列表

如何創建將所有日期及其數據分組為兩列的列?(右)

如何縮放熊貓數據框中除某些列之外的所有列?

如何向上移動R中數據框中的所有列?

用於從多個 Hive 數據庫中的所有 Hive 表中提取行數的 Shell 腳本

有條件地從數據庫中獲取表名?

Firebase 數據庫是否獲取所有數據然後限制它?

如何更新所有表并动态获取表名?

如何在JavaScript中对具有相同类名的表中的所有列求和?

如何在刪除 SQL 關係數據庫中的產品時自動刪除所有關聯組件?

如何僅顯示當前登錄用戶所做的約會,而不是從 Django 的數據庫中獲取所有約會

當不同的時區存在於不同的列中時,獲取作為日期列的 Pandas 數據框中的所有列

刪除表中除系統版本(歷史)表之外的所有數據

如何使用 Firebase 實時數據庫創建特定用戶所有已保存帖子的列表?

如何从表中的所有列中选择所有重复行的所有出现?

在 R 中拆分數據集,以便將所有具有相同名稱的列拆分為兩個相等的部分?

UPDATE 查詢更新所有數據

如何以角度形式獲取數組中的所有數據?