【问题标题】:Difference in the checksum SQL statements校验和 SQL 语句的区别
【发布时间】:2015-07-30 11:58:53
【问题描述】:
以下两种不同的说法有什么区别?请解释输出。
SELECT CHECKSUM(CONVERT(NVARCHAR,30))
结果:51136012
DECLARE @AA NVARCHAR
SET @AA= CONVERT(NVARCHAR,30)
SELECT CHECKSUM(@AA)
结果:38
【问题讨论】:
标签:
sql
sql-server
sql-server-2008
sql-server-2005
【解决方案1】:
默认长度不同。首先,它类似于 32。但是当你这样做时:
declare @aa nvarchar;
默认长度为1。所以,第二个只使用第一个字符。
在 SQL Server 中,始终使用 varchar() 类型的长度:
SELECT CHECKSUM(CONVERT(NVARCHAR(255), 30))
DECLARE @AA NVARCHAR(255);
SET @AA= CONVERT(NVARCHAR(255), 30);
SELECT CHECKSUM(@AA);