【发布时间】:2018-11-11 01:16:57
【问题描述】:
我正在通过 flyway migrate 运行一些脚本,并且在每个脚本中都出现此错误。脚本本身会运行,但下一个不会。
The prepared statement handle 3 is not valid in this context.
Please verify that current database, user default schema, and ANSI_NULLS and
QUOTED_IDENTIFIER set options are not changed since the handle is prepared.
上次脚本运行良好,但我有一段时间没有执行它们。其他开发人员在笔记本电脑上运行良好。我检查了两台笔记本电脑上 ANSI_Nulls 和 Quoted_Identifier 的默认设置,它们是相同的。
需要注意的一点是,所有脚本在执行之前都将 ANSI_NULLS 和 QUOTED_IDENTIFIER 显式设置为 ON,然后例如将它们关闭
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
IF OBJECT_ID(N'[dbo].[CalculateActionStatus]', N'FN') IS NULL
EXEC('CREATE FUNCTION [dbo].[CalculateActionStatus] (@Dummy int) RETURNS int AS BEGIN RETURN 1 END;')
GO
ALTER FUNCTION [dbo].[CalculateActionStatus]
(@ActionID int)
RETURNS int
AS
BEGIN
-- Action Status is basically the BIGGEST Status value of its child steps
DECLARE @Status int
set @Status = 0
select @Status = max(dbo.CalculateStepStatus(Start, Due, Completed, PercentComplete))
from dbo.view_Step_ResolutionStep
where ActionID = @ActionID
RETURN isnull(@Status, 0)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
有什么想法吗?
【问题讨论】:
-
这可能是一个错误。请在问题跟踪器中提交问题,并提供如何重现的确切步骤,以及完整的堆栈跟踪和导致问题的迁移的 SQL。
-
你找到答案了吗?
标签: sql-server flyway