【问题标题】:sql71501 sql parameter has unresolved reference to build-in typesql71501 sql 参数对内置类型的引用未解析
【发布时间】:2012-12-05 03:31:51
【问题描述】:

从 VS2012 我创建了一个数据库项目并创建了广告自定义类型

CREATE TYPE dbo.TypeProductCategoryTable AS TABLE
    ( ProductID int, CategoryID int )

现在当我使用这种类型编写存储过程时,我得到了编译错误

sql71501 sql 参数对内置类型的引用未解析

程序

CREATE PROCEDURE [dbo].[usp_ProductCategory_Mapping]
    @tvProdCat dbo.ProductCategoryTableType READONLY
AS
insert into tProductCategories(ProductId,CategoryId)
    SELECT @tvProdCat
RETURN 0

如何处理?我们可以在 Visual Studio 数据库项目中创建自定义类型吗

【问题讨论】:

  • 名称不同。 TypeProductCategoryTable 与 ProductCategoryTableType
  • 我的数据库项目遇到了同样的错误。当我在 VS2012 的数据库项目中添加自定义类型并在存储过程中使用它时,问题就开始了。就数据操作而言,一切正常,只是烦人,因为它不会让我构建数据库项目?任何指示或帮助将不胜感激。

标签: visual-studio-2012 database-project table-valued-parameters built-in-types


【解决方案1】:

您可以在 Visual Studio 项目中使用预部署脚本。 为此,您需要在 VS 中添加 2 个文件: 1. 在 VS 的数据库项目中创建 UserDefinedTableType.sql 并将创建表类型的脚本放入此脚本中。 2.在您的数据库项目中添加 UserScripts -> pre-Deployment script 并在此处调用步骤 1 中的脚本。使用此代码: :r .\Scripts\Pre-Deployment\UserDefinedTableType.sql

未解决的引用将通过此解决方案解决

【讨论】:

    【解决方案2】:

    我遇到了这个问题,并意识到 TVP 的构建节点以某种方式插入到我的 .sqlproj 文件中使用它的 SP 下方。一旦我将 TVP 移到 SP 上方,我不再收到 VS 中的错误,并且项目按预期部署,没有错误。 我以前没有意识到 .sqlproj 中构建节点的顺序很重要,但显然 DACPAC 编译器并不是为了智能地确定构建过程的顺序而回想起来的。我宁愿拥有这种控制权,即使它在这种情况下会绊倒我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2019-01-04
      • 2019-03-23
      • 2014-04-24
      • 1970-01-01
      相关资源
      最近更新 更多