部署后脚本中的执行过程-SSDT

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

在我的部署后脚本文件中,我正在执行最初在db项目本身中创建的存储过程:

数据库项目:

enter image description here

但是每当我发布数据库项目时,都会出现以下错误

过程st_company_register,第56536行插入失败,因为以下SET选项的设置不正确:“ ANSI_PADDING”。校验SET选项正确用于索引视图和/或索引在计算列和/或过滤索引和/或查询通知上和/或XML数据类型方法和/或空间索引操作。

以下为步骤:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO


    Create PROCEDURE [dbo].[st_company_register]
               @languageID int,
               @company_typeID int,
               @company_name nvarchar(100)
--Untill the end of proc

这是执行代码:

 exec [dbo].[st_company_register]
           @languageID =1,
           @company_typeID =4,
           @company_name =N'Company Name'

这是我的db项目设置,其ANSI_PADDING处于:

enter image description here

有什么想法吗?

sql sql-server continuous-deployment sql-server-data-tools database-project
1个回答
0
投票

为了避免在执行存储过程时出现此问题在部署后脚本中,只需用Set ANSI_PADDING ON包装执行语句,如下所示:

Set ANSI_PADDING ON

exec [dbo].[Proc]
           @languageID =1,
           @company_typeID =4,
           @company_name =N'Company Name'

Set ANSI_PADDING OFF
© www.soinside.com 2019 - 2024. All rights reserved.