我的目標是屏蔽 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 中的功能?
uj5u.com熱心網友回復:
我相信該錯誤與 nvarchar 精度更改為 10 而不是與
FUNCTION = 'default()'
如果您有任何值超過 10 個字符的資料,它們將被截斷,這將導致資料丟失。
做就是了:
ALTER TABLE [AdventureWorks2014].[Person].[PersonMasked]
ALTER COLUMN FirstName NVARCHAR(50) MASKED WITH (FUNCTION = 'default()');
有用的鏈接:
更改 SQL Server 中的列大小
當您修改(減少)列的長度時會發生什么?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364281.html
標籤:sql-server 查询语句 掩蔽 sql函数 数据屏蔽
上一篇:正則運算式(RegEx)在字串的任何部分查找特定單詞但有字符限制
下一篇:使用嵌套查詢簡化查詢
