, , , nvarchar (max), - - nvarchar (max).
, , HASHBYTES VARBINARY. , SELECT, INSERT, . . MSDN HASHBYTES ( SQL Server 2012 2014):
8000 . : 128 (16 ) MD2, MD4 MD5; 160 (20 ) SHA SHA1; 256 (32 ) SHA2_256 512 (64 ) SHA2_512.
: 8000 , - .
SQL Server 2016 ( 8000 ):
SQL Server 2014 8000 .
:
DECLARE @Test NVARCHAR(MAX) = REPLICATE(CONVERT(NVARCHAR(MAX), N't'), 50000);
SELECT LEN(@Test);
SELECT HASHBYTES('MD5', @Test);
:
50000
Msg 8152, Level 16, State 10, Line 3
String or binary data would be truncated.
8000 - SQL Server 2016 , SQLCLR. , SQL # SQLCLR ( ), Util_Hash Util_HashBinary:
DECLARE @Test NVARCHAR(MAX) = REPLICATE(CONVERT(NVARCHAR(MAX), N't'), 50000);
SELECT LEN(@Test);
SELECT SQL
SELECT SQL
:
50000
40752EB301B41EEAEB309348CE9711D6
0x40752EB301B41EEAEB309348CE9711D6
UPDATE
VARCHAR(MAX), 8000 ( NVARCHAR(MAX) 4000 ), , :
DECLARE @Test VARCHAR(MAX) = REPLICATE('t', 5000);
SELECT LEN(@Test) AS [Characters],
HASHBYTES('MD5', @Test) AS [MD5];
:
5000 0x6ABFBA10B49157F2EF8C85862B6E6313