选择COUNT(*)会产生下一个错误吗?



我使用python的pypyodbc来处理sql server数据库上的一些sql BULK插入命令。然而,在日志中我发现:

python   load_d 4c24-4ea4   ENTER SQLExecDirect 
HSTMT               0x000000000336C260
UCHAR *             0x0000000003A91188 [      67] " a        SELECT COUNT(*)  a        FROM out_table a        "
SDWORD                    67
python   load_d 4c24-4ea4   EXIT  SQLExecDirect  with return code -1 (SQL_ERROR)
HSTMT               0x000000000336C260
UCHAR *             0x0000000003A91188 [      67] " a        SELECT COUNT(*)  a    
FROM out_table a        "
SDWORD                    67
DIAG [22003] [Microsoft][SQL Server Native Client 11.0][SQL Server]Arithmetic overflow error converting expression to data type int. (8115) 

COUNT(*)是否返回一个"转义"的非常大的值?从INT的限制?

是。它可以。为了解决这个问题,微软引入了count_big函数,详见https://learn.microsoft.com/en-us/sql/t-sql/functions/count-big-transact-sql?view=sql-server-ver15

最新更新