You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server SSDT项目中geometry空间数据类型无法识别问题求助

问题

我有一个引用平面空间数据类型geometry的常规SQL Server视图,将该数据库视图导入SSDT项目时,抛出如下异常:

SQL70561: Cannot schema bind view 'MyView' because name 'geometry' is invalid for schema binding. Names must be in a two-part format and an object cannot reference itself.

我的Visual Studio中的SQL Server数据库项目目标SQL Server版本为2016,项目似乎无法识别geometry类型。

Visual Studio截图说明:截图中geometry类型被标记为红色波浪线,IDE提示无法识别该类型。

解决步骤
  • 核对项目配置与类型引用

    1. 右键SSDT项目 → 属性 → 进入“项目设置”标签,确认目标平台为SQL Server 2016(版本13.0)。
    2. 确保项目已添加Microsoft.SqlServer.Types引用:右键项目 → 添加 → 引用 → 切换到“扩展”标签,找到并勾选Microsoft.SqlServer.Types(对应2016版本的程序集版本应为13.x)。如果找不到该扩展,直接通过NuGet安装Microsoft.SqlServer.Types包,指定版本为13.0.0.0。
  • 修正视图的架构绑定语法
    架构绑定要求所有引用的对象、类型必须使用双部分名称,geometry属于sys架构下的系统类型,因此需要显式指定sys.geometry:

    CREATE VIEW dbo.MyView
    WITH SCHEMABINDING
    AS
    SELECT 
        Id,
        CAST(Location AS sys.geometry) AS Location
    FROM dbo.MyTable
    WHERE ...
    

    如果视图中调用了geometry相关函数(如STGeomFromText),同样要指定架构前缀,比如sys.STGeomFromText('POINT(10 20)', 4326)。

  • 刷新并重新生成项目
    修改完成后,右键项目选择“刷新”,再执行“重新生成”,检查错误是否消除。

内容的提问来源于stack exchange,提问作者Mukesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:27:42