use*_*827 5 sql-server sql-server-agent jobs
我创建了一个 sql 作业来查询计划缓存并单独获取串行计划,然后从计划缓存中清除它。作为 SQL 作业中第 1 步的一部分,我仅过滤串行计划并将其插入到我创建的表中。当我运行作业时,在第 1 步本身中,我收到以下错误;
INSERT failed because the following SET options have incorrect settings: '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. [SQLSTATE 42000] (Error 1934). The step failed.
Run Code Online (Sandbox Code Playgroud)
我做了研究并了解到这可能是由于 SET 选项。所以我检查了我创建的表,它是用
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Run Code Online (Sandbox Code Playgroud)
我看到有人有同样问题的帖子,并在将上述 SET 选项更改为 ON 后解决了它。我已经有了这个 SET,但仍然是同样的错误。我不知道为什么我会收到这个错误。
我在获取串行计划的查询中有这一行。
WITH XMLNAMESPACES ( 'http://schemas.microsoft.com/sqlserver/2004/07/showplan' AS p )
Run Code Online (Sandbox Code Playgroud)
这是它的样子:
WITH XMLNAMESPACES ( 'http://schemas.microsoft.com/sqlserver/2004/07/showplan' AS p ),
relop AS (
SELECT OBJECT_NAME(st.objectid, st.dbid) AS ObjectName,
cp.creation_time,
--------------------
--------------------
----------------------
))
INSERT INTO table_name
select * from relop
WHERE relop.total_relop = relop.serial_relop
Run Code Online (Sandbox Code Playgroud)
当我在查询窗口上运行它时,没有问题。当我把它放在一份工作中时,我收到了这个错误。
有什么建议?
Eri*_*ing 11
这不是创建表的方式,而是运行查询的选项。
代理确实以错误的设置运行。
SELECT *
FROM sys.dm_exec_sessions
WHERE is_user_process = 1
AND ( ansi_nulls = 0
OR ansi_padding = 0
OR ansi_warnings = 0
OR arithabort = 0
OR concat_null_yields_null = 0
OR quoted_identifier = 0 );
Run Code Online (Sandbox Code Playgroud)
简单的解决方法是在执行插入的作业步骤开始时使用正确的选项。
例如,如果我创建这个表,插入就可以正常工作:
USE master
CREATE TABLE dbo.whatever (id INT, thing AS id * 2);
INSERT dbo.whatever ( id )
VALUES ( 0 )
Run Code Online (Sandbox Code Playgroud)
但是从代理工作步骤它失败了,除非我把它放在第一位:
SET ANSI_NULLS ON;
SET ANSI_PADDING ON;
SET ANSI_WARNINGS ON;
SET ARITHABORT ON;
SET CONCAT_NULL_YIELDS_NULL ON;
SET QUOTED_IDENTIFIER ON;
Run Code Online (Sandbox Code Playgroud)
供参考:创建索引视图
归档时间: |
|
查看次数: |
6459 次 |
最近记录: |