一尘不染

导出Azure SQL数据库时出现错误SQL71501

sql

导出Azure SQL数据库时出现一个奇怪的错误。在最近进行一些模式更改之前,导出一直工作良好,但是现在却出现错误SQL71501。

数据库为V12,兼容性级别130(尽管master数据库仍为兼容性级别120)。

该问题似乎是由使用内置STRING_SPLIT函数的新表值函数引起的。已经使用了存储过程STRING_SPLIT,它们似乎并没有影响导出,但是该函数(编译正常,并且工作正常)似乎导致导出问题。

下面的函数是实际函数的简化版本,但会导致相同的问题。

CREATE FUNCTION [dbo].[TestFunction](
    @CommaSeparatedValues VARCHAR(MAX)
)
RETURNS TABLE
AS
    RETURN

    SELECT      c.ClientId,
                c.FullName

    FROM        dbo.Client c

    INNER JOIN  STRING_SPLIT(@CommaSeparatedValues, ',') csv
    ON          c.ClientId = csv.value

导入/导出历史记录刀片中给出的完整错误消息如下:

服务操作期间遇到错误。

在用作数据包一部分的架构中找到一个或多个不受支持的元素。

错误SQL71501:验证元素[dbo]时出错。[TestFunction]:功能:[dbo]。[TestFunction]对对象[dbo]。[STRING_SPLIT]有未解决的引用。

错误SQL71501:验证元素[dbo]。[TestFunction]时出错:功能:[dbo]。[TestFunction]包含对对象的未解析引用。对象不存在或引用不明确,因为它可以引用以下任何对象:[dbo]。[Client]。[csv],[dbo]。[STRING_SPLIT]。[csv]或[dbo]。
[STRING_SPLIT]。[值]。


阅读 234

收藏
2021-05-16

共1个答案

一尘不染

这是来自Microsoft
SQL团队的Xiaochen。我们已经在解决此问题。该修复程序将在接下来的几周内部署到导出服务。同时,此修复程序已在最新的DacFX
16.4(https://blogs.msdn.microsoft.com/ssdt/2016/09/20/sql-server-data-
tools-16-4-release/)。在我们在服务中解决此问题之前,您可以下载DacFX
16.4并使用sqlpackage解决。

2021-05-16