SQL71561:SqlCompulatedColumn:选择列时

问题描述 投票:0回答:1

需要从不同的源数据库访问视图。 我正在将 Azure data studio 与 SQL 数据库项目一起使用。首先,我将源数据库导出到 dacpac 中,并在新项目中创建了指向源 dacpac 的数据库参考点。

CREATE VIEW [dbo].[v_activitypointer] AS
SELECT  *  FROM  [$(dvdbname)].[dbo].[ap_partitioned];
GO

它使用 * all 列与上述语句一起工作,并且能够成功构建和部署项目。当我更改为指定列时,我需要几列而不是所有列,但它失败并出现 SQL71561:SqlCompulated 列错误

CREATE VIEW [dbo].[v_activitypointer] AS
SELECT  [ucode]  FROM  [$(dvdbname)].[dbo].[ap_partitioned];
GO
c:\dbt\cicdtest\v_activitypointer.sql(2,13,2,13):
Build error SQL71561: SqlView: [dbo].[v_activitypointer] has an unresolved reference to object [$(dvdbname)].[dbo].[ap_partitioned].[ucode]. [c:dbtcicdtestcicdtest.sqlproj]

c:dbtcicdtestv_activitypointer.sql(2,13,2,13):
Build error SQL71561: SqlComputedColumn: [dbo].[v_activitypointer].[ucode] has an unresolved reference to object [$(dvdbname]).[dbo].[ap_partitioned].[ucode]. [c:dbtcicdtestcicdtest.sqlproj]

stdout:     0 Warning(s)
stdout:     2 Error(s)

这是 .sqlproj 文件

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
    <Sdk Name="Microsoft.Build.Sql" Version="0.1.12-preview" />
    <PropertyGroup>
        <Name>cicdtest</Name>
        <ProjectGuid>{25E6C2C6-1C07-4516-BDC0-06E5AF0DCE07}</ProjectGuid>
        <DSP>Microsoft.Data.Tools.Schema.Sql.SqlServerlessDatabaseSchemaProvider</DSP>
        <ModelCollation>1033, CI</ModelCollation>
        <VerificationExtract>false</VerificationExtract>
        <VerifyExtendedTransactSQLObjectName>False</VerifyExtendedTransactSQLObjectName>
    </PropertyGroup>
    <ItemGroup>
        <SqlCmdVariable Include="dvdbname">
            <Value>$(SqlCmdVar__1)</Value>
            <DefaultValue>dataverse_uunq6705</DefaultValue>
        </SqlCmdVariable>
    </ItemGroup>
    <ItemGroup>
        <ArtifactReference Include="..\dataverse_uunq6705.dacpac">
            <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
            <DatabaseVariableLiteralValue>dataverse_uunq6705</DatabaseVariableLiteralValue>
        </ArtifactReference>
    </ItemGroup>
    <Target Name="BeforeBuild">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
    </Target>
</Project>

我尝试关闭 VerificationExtract 和VerifyExtendedTransactSQLObjectName 但没有用。

sql-server database dacpac azure-data-studio
1个回答
0
投票
Build error SQL71561: SqlComputedColumn: [dbo].[v_activitypointer].[ucode] has an unresolved reference to object [$(dvdbname]).[dbo].[ap_partitioned].[ucode]. [c:dbtcicdtestcicdtest.sqlproj]

要解决上述错误,您可以按照以下说明操作:

  • 确保表中存在

    [ucode]
    列。

  • 尝试清除对话框中的“数据库变量”字段,然后转到项目属性并取消选中“为常见对象启用扩展 Transact-SQL 验证”以允许项目成功构建。

  • 将所有引用更改为如下:

    SchemaName.TableName
    而不是
    DatabaseName.SchemaName.TableName

欲了解更多信息,您可以参考以下链接:

© www.soinside.com 2019 - 2024. All rights reserved.