gpt4 book ai didi

visual-studio-2010 - 数据库模式不明确索引提示问题

转载 作者:行者123 更新时间:2023-12-02 04:11:10 25 4
gpt4 key购买 nike

我刚刚使用 Sql Server 2008 数据库项目将数据库导入到我的 Visual Studio 项目中。在解决了 Visual Studio 突出显示的许多问题后,我现在只剩下两个与提示索引有关的问题。 2 个警告(带有导致语句)是

SELECT a.FI, a.GD 
FROM [RME].[dbo].[BP_RN] a with(index(idx_GD))
WHERE GD.STWithin(@Geometry) = 1

SQL04151: Procedure: [dbo].[sp_TNFRME] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [dbo].[BP_RN].[idx_GD] or [dbo].[idx_GD].




SELECT a.I
FROM [dbo].[N] a with(index(idx_G))
WHERE a.G.STIntersects(@Geometry) = 1

SQL04151: Procedure: [dbo].[sp_DIOQE] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [dbo].[idx_G] or [dbo].[N].[idx_G].



我分别列出两者的原因是因为第一个是查询单独的数据库,我不确定这是否意味着它需要以不同的方式解决。

无论如何,我的问题是如何解决此错误或完全限定提示,使其不再模棱两可?

谢谢

最佳答案

有一个技巧可以摆脱 Visual Studio 2010 Ultimate 中的警告而不摆脱提示,但您必须更改提示以使用 index_id 而不是索引的名称。

这适用于一个示例表,该表包含 3 个空间数据列,每个列都有一个索引。

空间索引是在 VS2010 Ultimate 的数据库项目中创建的,从模态视图中,导航到表的索引文件夹后,右键单击索引文件夹并选择添加空间索引。

每个空间索引的 index_id 取决于为同一个表创建空间索引的顺序,而不取决于任何其他索引的创建顺序。

空间索引之间的索引创建顺序取决于它们在架构 View 索引文件夹中出现的从上到下的顺序,因此基本上是字母数字字典顺序。

空间索引的 index_id 值始终从 384000 开始,对于每个额外创建的索引,按照创建顺序增加 1。

对于具有 3 个空间索引的示例,我创建了如下名称:

  • TABLEPREFIX_SPATIAL384000_COLUMNNAME1
  • TABLEPREFIX_SPATIAL384001_COLUMNNAME2
  • TABLEPREFIX_SPATIAL384002_COLUMNNAME3

  • 删除和重新创建索引也会为每个索引生成相同的 index_id。

    所以,然后我替换了:
    WITH(INDEX(TABLEPREFIX_SPATIAL384000_COLUMNNAME1))

    和:
    WITH(INDEX(384000))

    Visual Studio 编译时没有提示,查询使用正确的索引提示按预期运行。

    警告:如果您必须升级现有数据库,则必须删除/创建,而不是重命名,并且必须以正确的顺序进行。这不是一个很好的解决方法,但它会摆脱警告

    我尝试了一种更好看的方法,使用 sql 命令变量,例如:
    WITH(INDEX([$(my_geographic_index_name)]))

    不幸的是,这也产生了不希望的警告。

    祝你好运。

    关于visual-studio-2010 - 数据库模式不明确索引提示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089580/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com