如何在SQL中匿名化数据?
我需要匿名化SQL数据中的变量如何在SQL中匿名化数据?,sql,sql-server,sql-server-2016,data-masking,Sql,Sql Server,Sql Server 2016,Data Masking,我需要匿名化SQL数据中的变量(VAR NAME=“andry”) 变量包含10个数字+1个字母+2个数字。我需要将前10个数字随机化,然后保留字母+最后两个数字 我尝试了rand()函数,但这会使整个值随机化 SELECT TOP 1000 * FROM [XXXXXXXXXXX].[XXXXXXXXXX].[XXXXX.TEST] 我只加载了数据 编辑(来自“答案”): 我尝试过:更新someTable 设置someColumn=CONCAT(强制转换(RAND()*1000000000为
(VAR NAME=“andry”)
变量包含10个数字+1个字母+2个数字
。我需要将前10个数字随机化,然后保留字母+最后两个数字
我尝试了rand()
函数,但这会使整个值随机化
SELECT TOP 1000 *
FROM [XXXXXXXXXXX].[XXXXXXXXXX].[XXXXX.TEST]
我只加载了数据
编辑(来自“答案”):
我尝试过:更新someTable
设置someColumn=CONCAT(强制转换(RAND()*1000000000为BIGINT),右(someColumn,3))
然而,由于我对SQL完全陌生,我不知道如何使其工作。我为正在装箱的变量输入'someColumn=新列名。右(someColumn)=我正在更改的列。当我这样做时,我得到的信息是正确的函数需要两个参数
Zohar示例:我有一个变量,其中包含例如:1724981628R01。在这个变量中的所有这些值上,我想随机化前10个字母,保留最后3个字母(R01)。我该怎么做呢?有几件事。首先,转换为大整数并不能保证结果的字符数正确 其次,
rand()
对于查询的所有行都是常量。请尝试以下版本:
UPDATE someTable
SET someColumn = CONCAT(FORMAT(RAND(CHECKSUM(NEWID())
), '0000000000'
),
RIGHT(someColumn, 3)
);
对不起,我正在使用Microsoft SQL server 2016对不起,我不明白这个问题。请将示例数据包括为DDL+DML(创建表和插入语句)、当前尝试和所需结果。请注意,我们只需要能够证明问题的样本数据,而不必是实际项目中的实际数据。A
将@T声明为表(…)。。。。在大多数情况下,插入到@T..。
就足够了。这里的“变量”是什么意思,您不想更新表吗?