校验和 SQL 语句的差异
Difference in the checksum SQL statements
下面两种不同的说法有什么区别?请解释输出。
SELECT CHECKSUM(CONVERT(NVARCHAR,30))
结果:51136012
DECLARE @AA NVARCHAR
SET @AA= CONVERT(NVARCHAR,30)
SELECT CHECKSUM(@AA)
结果:38
默认长度不同。首先,它类似于 32。但是当你这样做时:
declare @aa nvarchar;
默认长度为 1。因此,第二个仅使用第一个字符。
在SQL服务器中,总是使用varchar()
类型的长度:
SELECT CHECKSUM(CONVERT(NVARCHAR(255), 30))
DECLARE @AA NVARCHAR(255);
SET @AA= CONVERT(NVARCHAR(255), 30);
SELECT CHECKSUM(@AA);
下面两种不同的说法有什么区别?请解释输出。
SELECT CHECKSUM(CONVERT(NVARCHAR,30))
结果:51136012
DECLARE @AA NVARCHAR
SET @AA= CONVERT(NVARCHAR,30)
SELECT CHECKSUM(@AA)
结果:38
默认长度不同。首先,它类似于 32。但是当你这样做时:
declare @aa nvarchar;
默认长度为 1。因此,第二个仅使用第一个字符。
在SQL服务器中,总是使用varchar()
类型的长度:
SELECT CHECKSUM(CONVERT(NVARCHAR(255), 30))
DECLARE @AA NVARCHAR(255);
SET @AA= CONVERT(NVARCHAR(255), 30);
SELECT CHECKSUM(@AA);