Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Greenhorn
Member

Откуда:
Сообщений: 311
Добрый день.

+ select @@version

Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)


При старте SQL_я есть необходимость в ряде действий.
Что и было реализовано в отдельной SP_шке, запускаемой при старте.
SP прекрасно работает после запуска SQL_я, а в момент запуска вылезает
+ следующее сообщение
Message
DELETE failed because the following SET options have incorrect settings: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, 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.


И действительно есть две таблицы с фильтрованными индексами, из-за который и выскакивает данное сообщение (доказано опытным путем).

Пробовал пересоздать индексы
+ с рекомендациями из BOL_а
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF
CREATE INDEX ....

Пробовал удалить индексы перед удалением из таблиц - ошибка та же
try catch - не спасает ...

Что делать ?
6 окт 14, 14:53    [16666291]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Greenhorn
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF

а в начало тела процедуры,ето не пробовали вставить ?
6 окт 14, 14:56    [16666315]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Greenhorn
Что делать ?

Делать так, чтобы на момент команды DELETE все нужные SET-ы имели нужные значения.
6 окт 14, 14:58    [16666334]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Greenhorn
Member

Откуда:
Сообщений: 311
Maxx
Greenhorn
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF

а в начало тела процедуры,ето не пробовали вставить ?

Пробовал - не помогает. Ошибка та же.

Glory
Greenhorn
Что делать ?

Делать так, чтобы на момент команды DELETE все нужные SET-ы имели нужные значения.


Как этого можно добиться если
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF
DELETE FROM [dbo.[TableWithFilteredIndex]]
Не работает...

У меня идеи закончились, перед обращением в форум.
6 окт 14, 15:08    [16666415]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
оберните вашу процедуру во внешнюю. в ней (во внешней) устанавливаете в нужное положение set-ы и запускаете уже вашу.
а ANSI_NULLS и QUOTED_IDENTIFIER так и вовсе на момент создания (изменения) процедуры должны быть установлены.
6 окт 14, 15:10    [16666436]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Greenhorn
Как этого можно добиться если

Например, внимательно прочитать в хелпе про каждый из SET-ов
Особенно про QUOTED_IDENTIFIER и ANSI_NULLS
6 окт 14, 15:11    [16666442]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Greenhorn
Member

Откуда:
Сообщений: 311
daw
оберните вашу процедуру во внешнюю. в ней (во внешней) устанавливаете в нужное положение set-ы и запускаете уже вашу.
а ANSI_NULLS и QUOTED_IDENTIFIER так и вовсе на момент создания (изменения) процедуры должны быть установлены.

Не выходит каменный цветок:
+
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF
GO

ALTER PROCEDURE [adm].[StartupEx]
as
BEGIN
  SET NOCOUNT ON;
/*
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF
*/
  DELETE FROM [dbo.[TableWithFilteredIndex] 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON
  SET NUMERIC_ROUNDABORT OFF
GO
ALTER PROCEDURE [adm].[Startup]
AS
BEGIN
  exec [adm].[StartupEx]
END


Что не так ?
6 окт 14, 15:24    [16666546]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Greenhorn
Что не так ?

Все не так
Только ANSI_NULLS и QUOTED_IDENTIFIER сохраняются с процедурой и восстанавливаются на момент ее выполнения
А остальные SET-ы остаются текущими
Вы не пробовали выводить список SET-ов перед командой ? И проверяить их ?
6 окт 14, 15:27    [16666580]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
вот так я имел в виду:
SET ANSI_NULLS on; 
go
set QUOTED_IDENTIFIER ON;
go
ALTER PROCEDURE [adm].[Startup]
AS
BEGIN
  SET ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL ON; 
  SET NUMERIC_ROUNDABORT OFF;

  exec [adm].[StartupEx]
END
6 окт 14, 15:30    [16666630]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Greenhorn
Member

Откуда:
Сообщений: 311
daw
вот так я имел в виду:
SET ANSI_NULLS on; 
go
set QUOTED_IDENTIFIER ON;
go
ALTER PROCEDURE [adm].[Startup]
AS
BEGIN
  SET ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL ON; 
  SET NUMERIC_ROUNDABORT OFF;

  exec [adm].[StartupEx]
END

Так получилось ... Спасибо...
Буду разбираться дальше...
6 окт 14, 15:51    [16666818]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Greenhorn
Пробовал - не помогает. Ошибка та же.

Greenhorn
daw
вот так я имел в виду:
SET ANSI_NULLS on; 
go
set QUOTED_IDENTIFIER ON;
go
ALTER PROCEDURE [adm].[Startup]
AS
BEGIN
  SET ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL ON; 
  SET NUMERIC_ROUNDABORT OFF;

  exec [adm].[StartupEx]
END


Так получилось ... Спасибо...
Буду разбираться дальше...


ееее...аааа.... а я что предлагал то ?
6 окт 14, 16:16    [16666986]     Ответить | Цитировать Сообщить модератору
 Re: Startup SP: DELETE failed because the following SET options have incorrect settings...  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx
ееее...аааа.... а я что предлагал то ?

не малехо не то ... сорри
6 окт 14, 16:17    [16666992]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить