有人知道如何在 SQL Server 2012 存储过程中获取地理空间数据类型的校验和吗?我在其他类型上使用校验和没有问题,但它在地理上抛出异常说:
参数数据类型 sys.geography 对于校验和函数的参数 9 无效。
我已经在 SQL Server Management Studio 中运行了调试器,但我不确定该怎么做。
有人知道如何在 SQL Server 2012 存储过程中获取地理空间数据类型的校验和吗?我在其他类型上使用校验和没有问题,但它在地理上抛出异常说:
参数数据类型 sys.geography 对于校验和函数的参数 9 无效。
我已经在 SQL Server Management Studio 中运行了调试器,但我不确定该怎么做。
从您的评论看来,您的立场如下。
CREATE TABLE T
(
I INT,
G geography
);
INSERT INTO T
VALUES (1,geography::STGeomFromText('LINESTRING(-122.360 47.656,
-122.343 47.656 )', 4326));
然后您正在运行执行以下操作的脚本
SELECT Avg(Cast(CHECKSUM(*) As Float))
FROM T;
您需要对其进行更改,以便它执行以下操作以避免此错误。
WITH CTE AS
(
SELECT I,
CAST(G AS VARBINARY(MAX)) AS G
FROM T
)
SELECT Avg(Cast(CHECKSUM(*) As Float))
FROM CTE;
或者可能
SELECT Avg(Cast(CHECKSUM(I,CAST(G AS VARBINARY(MAX))) As Float))
FROM T;
*
但是无论如何您都不能与这些表一起使用。