我有这个查询:
UPDATE f
SET
f.GeographyField = s.GeographyField
FROM dbo.Table1 f
INNER JOIN dbo.Table2 s on f.ID=s.ID
WHERE
f.ID ='12345'
我跑步时收到此错误:
s.GeographyField和f.GeographyField都是地理数据类型。我从未使用过该数据类型。我不知道如何查询以找出重复项。如何解决以上问题?消息2601,级别14,状态1,第2行无法在其中插入重复的密钥行 具有唯一索引的对象'sys.extended_index_645577338_384000' 'SIndx_SpatialTable_geography_col1'。重复的键值为 (0x7d41bf7704,12345)。
我在f.GeographyField上找不到唯一索引。此外,我尝试查询此信息以查明是否确实存在重复项,但无法对其进行查询。我认为以不同的方式查询地理类型
select * from Table1 where GeographyField = '0xE7100000010C29904D2D5Y874440F1F44A5986FE5BC0'
答案 0 :(得分:0)
尝试以下类似方法。 (如果评论无效,则会删除。)
从下面的链接中获得了一些线索。
UPDATE f
SET
f.GeographyField = geography::STGeomFromText(s.GeographyField.STAsText())
或
SET
f.GeographyField = geography::STGeomFromWKB(s.GeographyField.STAsBinary())