post 部署脚本中的执行程序 - SSDT

Executing procedure in post deployment script - SSDT

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

数据库项目:

但是每当我发布 db 项目时,我都会收到以下错误

Procedure st_company_register, Line 56536 INSERT failed because the following SET options have incorrect settings: 'ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.

程序如下:

    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'

这是我的数据库项目设置,其中有 ANSI_PADDING:

有什么想法吗?

要在 post 部署脚本 中执行存储过程 时避免此问题,只需使用 Set [=17] 包装执行语句=] ON 如下:

Set ANSI_PADDING ON

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

Set ANSI_PADDING OFF