Я экспериментировал, используя приведенный ниже код, и кажется, что он не работает.
DBCC TRACEON (460);
DECLARE @aa as TABLE (name varchar(5))
INSERT INTO @aa
SELECT '1234567890'
Ошибка
Строка или двоичные данные будутусеченный
Ожидаемая ошибка:
Строка или двоичные данные будут обрезаны в таблице @aa, имя столбца.Усеченное значение: «1234567890»
В соответствии с https://www.procuresql.com/blog/2018/09/26/string-or-binary-data-get-truncated/ SQL Server 2019 сможет идентифицировать усеченные столбцы, но их можно использовать в SQL Server 2016 с помощью TRACEON 460 .
С точки зрения ролей, у меня есть "public", "processadmin" и "sysadmin".
В sys.messages я думаю, что патч для этой функции основан на message_id = 2628:
+------------+------------------------------------------------------------------------------------------------------+
| message_id | text |
+------------+------------------------------------------------------------------------------------------------------+
| 2628 | String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'. |
| 8152 | String or binary data would be truncated. |
+------------+------------------------------------------------------------------------------------------------------+
Подробности:
Microsoft SQL Server 2016 Standard (64-bit)
Version : 13.0.5149.0
Is Clustered : False
Is HADR Enabled : False
Is XTP Supported : True