gpt4 book ai didi

sql-server-2008 - 在 SQL Server 2008 上使用筛选索引删除/插入失败?

转载 作者:行者123 更新时间:2023-12-04 06:58:51 24 4
gpt4 key购买 nike

我创建了一个默认设置的存储过程,如:

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

Create PROCEDURE [dbo].[TestSP]
AS
BEGIN
set arithabort off
set arithignore on
--.....
END

没事。然后我在表上为数据库中的非空值创建了一个过滤的唯一索引,然后我不能再在 SQL Server Management Studio 中运行任何存储过程。我得到的错误是这样的:

DELETE(or INSERT) failed because the following SET options have incorrect settings: 'ANSI_NULLS, QUOTED_IDENTIFIER'. 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 OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
EXEC TestSP

或者
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
EXEC TestSP

我仍然得到上述错误。我很困惑。如何解决这个问题?

最佳答案

ANSI_NULLS 和 QUOTED_IDENTIFIER 的设置都基于创建/更改过程时这些设置的内容,而不是运行过程的实例中的设置。

您想为您的 TestSP 运行一个 ALTER PROC,在您运行它时至少将 QUOTED_IDENTIFIER 设置为 ON。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[TestSP]

AS
BEGIN
set arithabort off
set arithignore on
--.....
END

关于sql-server-2008 - 在 SQL Server 2008 上使用筛选索引删除/插入失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com