下面两个不同的陈述有什么区别?请解释输出。
SELECT CHECKSUM(CONVERT(NVARCHAR,30))
结果:51136012
DECLARE @AA NVARCHAR
SET @AA= CONVERT(NVARCHAR,30)
SELECT CHECKSUM(@AA)
结果:38
答案 0 :(得分:2)
默认长度不同。在第一个中,它类似于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);