Error SQL71501 on exporting Azure SQL Database

空扰寡人 提交于 2019-12-12 10:51:16

问题


I'm getting a strange error when exporting an Azure SQL Database. Exports had been working fine until some recent schema changes, but it's now giving me Error SQL71501.

The database is V12, Compatibility Level 130 (although the master database is still Compatibility Level 120).

The problem seems to be caused by a new table-valued function, which uses the built in STRING_SPLIT function. There were already stored procedures using STRING_SPLIT and they don't seem to have affected the export, but the function (which compiles OK, and is working fine) seems to cause a problem with the export.

The function below is a simplified version of the real one, but causes the same problem.

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

The complete error message given in the Import/Export history blade is as follows:

Error encountered during the service operation.

One or more unsupported elements were found in the schema used as part of a data package.

Error SQL71501: Error validating element [dbo].[TestFunction]: Function: [dbo].[TestFunction] has an unresolved reference to object [dbo].[STRING_SPLIT].

Error SQL71501: Error validating element [dbo].[TestFunction]: Function: [dbo].[TestFunction] 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].[Client].[csv], [dbo].[STRING_SPLIT].[csv] or [dbo].[STRING_SPLIT].[value].


回答1:


This is Xiaochen from Microsoft SQL team. We are already working on the fix of this issue. The fix will be deployed to the export service in next few weeks. In the same time, the fix is already available in the latest DacFX 16.4 (https://blogs.msdn.microsoft.com/ssdt/2016/09/20/sql-server-data-tools-16-4-release/). Before we fix this issue in the service, you can download the DacFX 16.4 and use sqlpackage to work around.




回答2:


SQLAzure validates Schema,references of the objects when you export database,if any of the references fails like the below one in your case

Error SQL71501: Error validating element [dbo].[TestFunction]: Function: [dbo].[TestFunction] has an unresolved reference to object [dbo].[STRING_SPLIT].

the export won't succeed..So you will need to resolve those errors,prior to export..

From the docs,you will need to set the compatibility level to 130

The STRING_SPLIT function is available only under compatibility level 130. If your database compatibility level is lower than 130, SQL Server will not be able to find and execute STRING_SPLIT function

Update:

I was able to repro the same issue and only current workaround is to delete the table valued function,that is referencing system function and export DACPAC,once export is done,recreate the table valued function :(

I have raised the issue here:please upvote..

https://feedback.azure.com/forums/217321-sql-database/suggestions/16722646-azure-database-export-fails-when-split-string-is-i




回答3:


Data Migration Assistant did it for me. First run an assessment on the schema, on success, run your migration https://www.microsoft.com/en-us/download/details.aspx?id=53595/



来源:https://stackoverflow.com/questions/40109475/error-sql71501-on-exporting-azure-sql-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!