Я получаю эту ошибку для сценария SQL, показанного ниже:
Ошибка SELECT, поскольку следующие параметры SET имеют неверные настройки: 'CONCAT_NULL_YIELDS_NULL ANSI_WARNINGS ANSI_PADDING'. Убедитесь, что параметры SET верны для использования с индексированными представлениями и / или в 393
Кроме того, он работал на одном SQL сервере, но на другом я получаю сообщение об ошибке. Оба SQL Server 2016.
Я также заметил, что ошибка заключается в том, что я использую драйвер «ODB C драйвер 13 для sql сервер» для подключения к БД. Но если я использую «SQl собственный клиент сервера», то это не проблема.
/****** Object: Stored Procedure dbo.TAHolidayCal_FindBrkCls ******/
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.TAHolidayCal_FindBrkCls'))
DROP PROCEDURE dbo.TAHolidayCal_FindBrkCls
GO
CREATE PROCEDURE dbo.TAHolidayCal_FindBrkCls
(@calDate DATETIME,
@holCalID CHAR(4),
@InstID01 CHAR(13),
@InstID02 CHAR(13) = NULL,
@InstID03 CHAR(13) = NULL,
@InstID04 CHAR(13) = NULL,
..... and so on and so forth up to ...
@InstID99 CHAR(13) = NULL,
@InstID100 CHAR(13) = NULL
)
AS
BEGIN
SET NOCOUNT ON
SELECT DISTINCT
i.InstrumentID, i.Status, i.Product, i.SysDescription,
e.TradeAdminStatus, CONVERT(DATE, @calDate) AS PayDate
FROM
Instrument i
LEFT OUTER JOIN
EXTTradeStatus e ON (i.InstrumentID = e.InstrumentID)
AND (i.VersionNumber = e.VersionNumber)
INNER JOIN
EXTBreakClause b ON (i.InstrumentID = b.InstrumentID)
AND (i.VersionNumber = b.VersionNumber)
WHERE
(i.VersionNumber = 0)
AND i.InstrumentID IN (@InstID01, @InstID02, @InstID03,
......
@InstID97, @InstID98, @InstID99, @InstID100)
AND (@holCalID IN (SELECT value
FROM
(SELECT
CONVERT(XML, CONVERT(VARBINARY(MAX), b.BreakClauseDefn))) AS BCD(X)
CROSS APPLY
BCD.X.nodes('//Definitions/BreakDefn/NotificationHolidayCalendar/text()') NHC(X)
CROSS APPLY
string_split(NHC.X.value('.', 'varchar(max)'), ',')
)
OR
@holCalID IN (SELECT value
FROM
(SELECT CONVERT(XML, CONVERT(varbinary(MAX), b.BreakClauseDefn))) AS BCD(X)
CROSS APPLY BCD.X.nodes('//Definitions/BreakDefn/ExerciseHolidayCalendar/text()') EHC(X)
CROSS APPLY string_split(EHC.X.value('.', 'varchar(max)'), ',')
)
)
AND
(
CONVERT(DATE, @calDate) in
(
SELECT CONVERT(DATE, ND.X.value('.', 'varchar(max)'))
FROM
(SELECT CONVERT(XML, CONVERT(varbinary(MAX),b.BreakClauseSchedule))) AS BCS(X)
CROSS APPLY BCS.X.nodes('//Schedule/Event/NotificationDate/text()') ND(X)
)
OR
CONVERT(DATE, @calDate) in
(
SELECT CONVERT(DATE, ED.X.value('.', 'varchar(max)'))
FROM
(SELECT CONVERT(XML, CONVERT(varbinary(MAX),b.BreakClauseSchedule))) AS BCS(X)
CROSS APPLY BCS.X.nodes('//Schedule/Event/ExerciseDate/text()') ED(X)
)
)
SET NOCOUNT OFF
END
GO
EXECUTE Create_Permissions 'dbo.TAHolidayCal_FindBrkCls'
GO