我在屏蔽表中列的值时遇到问题

时间:2018-12-18 07:05:11

标签: sql sql-server

WORKER_REF_ID   BONUS_AMOUNT    BONUS_DATE
      1            5000      2016-02-20 00:00:00.000
      1            4500      2016-02-20 00:00:00.000
      2            3500      2016-06-11 00:00:00.000

这是我的Bonus1表的外观,我想屏蔽表中的Bonus_Amount列。我正在使用下面的代码屏蔽相同的内容,但是在执行它时遇到了一些问题。

  alter table [AdventureWorks].[dbo].[Bonus1]
  alter column Bonus_Amount add masked with (function ='random(1,5)').

如何解决问题。这是我收到的错误消息:-

  

关键字“ with”附近的语法不正确。
  关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

1 个答案:

答案 0 :(得分:4)

SQL Server 2016+支持屏蔽功能

您不能在SQL Server 2014中使用屏蔽功能。

如果您坚持使用数据屏蔽,则可以通过创建和使用视图来制作自己的地图。

CREATE VIEW dbo.testview
AS
SELECT
    CreditCardID,
    CardType,
    CONCAT( '**********', RIGHT( CardNumber, 4 ) ) AS [CARDNUMBER_MASKED],
    ....
from ...

Reference

相关问题