У меня проблема с маскированием моих значений для столбца в таблице

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)').

Как решить проблему. Это сообщение об ошибке, которое я получаю: -

Incorrect syntax near the keyword 'with'.
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

вы пробовали без использования ключевого слова add?

Derviş Kayımbaşıoğlu 18.12.2018 08:20

@Simonare, да, но я все еще получаю сообщение об ошибке: «Неправильный синтаксис рядом с 'function' expecting '(' or SELECT»

Jarnail Singh 18.12.2018 08:25

какую версию SQL Server вы используете?

Derviş Kayımbaşıoğlu 18.12.2018 08:26

Вы используете SQL-Server 2016? Это функция SQL Server 2016, поэтому в более ранних версиях вы получите эту ошибку.

JuanN 18.12.2018 08:26

@Simonare Я использую версию 2014 года.

Jarnail Singh 18.12.2018 08:28

Странно то, что оставаясь в 2014 году вы НЕ получаете Неправильный синтаксис рядом со словом "замаскировано"

sepupic 18.12.2018 08:32
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
6
514
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Функция маскирования поддерживается SQL Server 2016+.

Вы не можете использовать функцию маскирования с SQL Server 2014.

Если вы настаиваете на использовании маскировки данных, вы можете создать свою собственную карту, создав и используя виды.

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

Ссылка

Другие вопросы по теме