【问题标题】: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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2011-03-22
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多