有人知道如何在SQL Server 2012存储过程中获取地理空间数据类型的校验和吗?我对其他类型使用校验和没有问题,但它在地理上引发了一个例外:
参数数据类型sys.geography对校验和函数的参数9无效。
我在SQL Server Management Studio中运行了调试器,但我不知道该怎么做。
答案 0 :(得分:1)
根据您的评论,您的立场似乎如下。
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;
但是无论如何你都不能在这些表格中使用*
。