SQL Server :: МАСКИРУЕТСЯ (ФУНКЦИЯ = 'по умолчанию()'); не работает

0

Вопрос

Моя цель - замаскировать столбцы в SQL Server 2019.

Я следую очень простому руководству.

Я запускаю этот запрос против AdventureWorks2014 и я создаю копию Person.Person:

SELECT  [BusinessEntityID]
      ,[PersonType]
      ,[NameStyle]
      ,[Title]
      ,[FirstName]
      ,[MiddleName]
      ,[LastName]
      ,[Suffix]
      ,[EmailPromotion]
      ,[AdditionalContactInfo]
      ,[Demographics]
      ,[rowguid]
      ,[ModifiedDate]
      INTO [Person].[PersonMasked]
  FROM [AdventureWorks2014].[Person].[PersonMasked]
  ORDER BY BusinessEntityID

Теперь я собираюсь замаскировать колонку FirstName как написано в руководстве:

ALTER TABLE [AdventureWorks2014].[Person].[PersonMasked]
ALTER COLUMN FirstName NVARCHAR(10) MASKED WITH (FUNCTION = 'default()');

И я получаю сообщение об ошибке:

Msg 8152, Level 16, State 30, Line 1
String or binary data would be truncated.
The statement has been terminated.

Completion time: 2021-11-23T15:32:43.0426983+01:00

Где я ошибаюсь?

Где я могу найти эту функцию FUNCTION = 'default()' в SSMS?

1

Лучший ответ

1

Я полагаю, что ошибка связана с изменением точности nvarchar на 10, а не с

FUNCTION = 'default()' 

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

Просто сделай:

ALTER TABLE [AdventureWorks2014].[Person].[PersonMasked]
ALTER COLUMN FirstName NVARCHAR(50) MASKED WITH (FUNCTION = 'default()');

Полезные ссылки:
Изменение размера столбца в SQL Server
Что происходит, когда вы изменяете (уменьшаете) длину столбца?

2021-11-23 16:19:54

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................