如何在SQL Server中创建计算CRC16的函数?
知道如何告诉我sql中是否有计算CRC16的函数,计算方法列为“CRC-CCITT(0xFFFF)” CRC-CCITT(0xFFFF)->多项式:x^16+x^12+x^5+1 我尝试创建以下函数,但计算不正确:如何在SQL Server中创建计算CRC16的函数?,sql,sql-server,database,function,checksum,Sql,Sql Server,Database,Function,Checksum,知道如何告诉我sql中是否有计算CRC16的函数,计算方法列为“CRC-CCITT(0xFFFF)” CRC-CCITT(0xFFFF)->多项式:x^16+x^12+x^5+1 我尝试创建以下函数,但计算不正确: ( @input varchar(max) ) RETURNS int WITH SCHEMABINDING AS BEGIN DECLARE @crc bigint = 0xffff , @result int ;
(
@input varchar(max)
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
DECLARE @crc bigint = 0xffff
, @result int
;
SELECT @crc = dbo.CRC16calc(@crc, Ascii(Substring(@input, v.id, 1)))
FROM dbo.IndexTable(1, LEN(@input)) AS v
ORDER
BY v.Id
;
SET @result = (CONVERT(int, CONVERT(VARBINARY(4), ~@crc))) ;
RETURN @result ;
END