Вопрос

SQL View error dbo.VwProcessLib

Коллеги доброго времени суток! Развернули систему on-site, слетел раздел Библиотеки процессов, точнее перестал отображать список процессов. проблема во вьюхе dbo.VwProcessLib:

 

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[VwProcessLib]'))
BEGIN
	DROP VIEW [dbo].[VwProcessLib]
END
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
 
CREATE VIEW [dbo].[VwProcessLib]
AS
 
SELECT [VwSysSchemaInWorkspace].[UId] AS [Id]
	,[VwSysSchemaInWorkspace].[Id] AS [SysSchemaId]
	,[VwSysSchemaInWorkspace].[CreatedOn]
	,[VwSysSchemaInWorkspace].[CreatedById]
	,[VwSysSchemaInWorkspace].[ModifiedOn]
	,[VwSysSchemaInWorkspace].[ModifiedById]
	,[VwSysSchemaInWorkspace].[ProcessListeners]
	,[VwSysSchemaInWorkspace].[Name]
	,[VwSysSchemaInWorkspace].[Caption]
	,[VwSysSchemaInWorkspace].[ManagerName]
	,[VwSysSchemaInWorkspace].[UId]
	,[VwSysSchemaInWorkspace].[ParentId]
	,[VwSysSchemaInWorkspace].[ExtendParent]
	,[VwSysSchemaInWorkspace].[IsChanged]
	,[VwSysSchemaInWorkspace].[IsLocked]
	,[VwSysSchemaInWorkspace].[MetaData]
	,[VwSysSchemaInWorkspace].[MetaDataModifiedOn]
	,[VwSysSchemaInWorkspace].[SysPackageId]
	,[VwSysSchemaInWorkspace].[PackageUId]
	,[VwSysSchemaInWorkspace].[SysWorkspaceId]
	,[VwSysSchemaInWorkspace].[Description]
	,[VwSysSchemaInWorkspace].[NeedUpdateSourceCode]
	,[VwSysSchemaInWorkspace].[NeedUpdateStructure]
	,[VwSysSchemaInWorkspace].[NeedInstall]
	,[IsMaxVersion] =
		CAST(CASE
			WHEN EXISTS (
				SELECT 1
				FROM [SysSchemaProperty]
				WHERE
					[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id]
					AND [SysSchemaProperty].[Name] = 'Version' AND [SysSchemaProperty].[Value] = (
						SELECT MAX([SysSchemaProperty].[Value])
						FROM [SysSchemaProperty]
						WHERE
							[SysSchemaProperty].[Name] = 'Version'
							AND [SysSchemaProperty].[SysSchemaId] IN (
								SELECT [VwSysSchemaInWorkspace].[Id] UNION (
									SELECT [SysSchema].[Id]
									FROM [SysSchema]
									WHERE
										[SysSchema].[ParentId] IN ([VwSysSchemaInWorkspace].[ParentId], [VwSysSchemaInWorkspace].[Id])
								)
							)
						)
					)
				THEN 1
			ELSE 0
		END AS BIT)
	,[Enabled] =
		CAST(CASE
			WHEN EXISTS (
				SELECT 1
				FROM [SysProcessDisabled]
				WHERE
					[SysProcessDisabled].[SysSchemaId] IN([VwSysSchemaInWorkspace].[Id], [VwSysSchemaInWorkspace].[ParentId]))
				THEN 0
			ELSE 1
		END AS BIT)
	,[SysSchemaProperty].[Value] as [TagProperty]
	,[Version] =
		CAST(COALESCE(
			(SELECT [SysSchemaProperty].[Value]
			FROM [SysSchemaProperty]
			WHERE
				[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
				[SysSchemaProperty].[Name] = 'Version')
		,0) AS INT)
	,[ProcessSchemaTypeId] = (
		SELECT [ProcessSchemaType].[Id]
		FROM [ProcessSchemaType]
		WHERE [ProcessSchemaType].[Code] = 'Business Process')
	,[AddToRunButton] =
		CAST(
			(SELECT Count([RunButtonProcessList].[Id])
			FROM [RunButtonProcessList]
			WHERE
				[RunButtonProcessList].[SysSchemaUId] = [VwSysSchemaInWorkspace].[UId])
		AS BIT)
	,[IsActiveVersion] =
		CAST(CASE
			WHEN COALESCE(
				(SELECT [SysSchemaUserProperty].[Value]
				FROM [SysSchemaUserProperty]
				WHERE
					[SysSchemaUserProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
					[SysSchemaUserProperty].[Name] = 'IsActiveVersion')
				,(SELECT [SysSchemaProperty].[Value]
				FROM [SysSchemaProperty]
				WHERE
					[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
					[SysSchemaProperty].[Name] = 'IsActiveVersion')
				,N'True') = N'True' THEN 1
			ELSE 0
		END AS BIT)
	,[VersionParentId] = (
		(SELECT COALESCE([VwSysSchemaInWorkspace].[ParentId]
		,[VwSysSchemaInWorkspace].[Id]))
	)
	,[VersionParentUId] = CASE
		WHEN [VwSysSchemaInWorkspace].[ParentId] IS NULL
			THEN [VwSysSchemaInWorkspace].[UId]
		ELSE (SELECT VwSSIW.[Uid] FROM [VwSysSchemaInWorkspace] VwSSIW
			WHERE VwSSIW.[Id] = [VwSysSchemaInWorkspace].[ParentId])
		END
	,[HasStartEvent] = dbo.fn_GetSchemaMetaDataContains([VwSysSchemaInWorkspace].[metaData],
		'Terrasoft.Core.Process.ProcessSchemaStartEvent')
	,[StartOptionsImageId] = dbo.[fn_GetStartOptionsImageId]([VwSysSchemaInWorkspace].[UId])
	,[IsProcessTracing] = CASE
		WHEN [VwSysSchemaInWorkspace].[ParentId] IS NULL
			THEN [dbo].[fn_GetIsProcessTracing] ([VwSysSchemaInWorkspace].[Id])
		ELSE
			[dbo].[fn_GetIsProcessTracing] ([VwSysSchemaInWorkspace].[ParentId])
		END
FROM [VwSysSchemaInWorkspace]
	INNER JOIN [SysSchemaProperty] ON [SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id]
WHERE
	[VwSysSchemaInWorkspace].[ManagerName] = 'ProcessSchemaManager'
	AND [SysSchemaProperty].[Name] = 'Tag'
	AND [SysSchemaProperty].[Value] <> ''
GO

Проблема возникает в данной части - http://prntscr.com/kxbysw

Ошибка следующая - http://prntscr.com/kxbz11

Кто нибудь сталкивался с данной проблемой.

Читал на форумах, что при данной ошибке поможет перестроить индексы в БД, так ли это?

Заранее благодарен.

Нравится

2 комментария
Лучший ответ

Данная ошибка возникает из-за того, что коллация базы данных отличается от коллации базы данных tempdb (т.е. самого сервера).

Collation (сопоставление) определяет ряд правил, согласно которым сортируются и сравниваются данные. Символьные данные сортируются, используя правила, которые определяют правильную последовательность символов, в зависимости от регистра, надстрочных знаков, символьных типов kana и ширины символов.

Как изменить коллацию БД описано здесь

Данная ошибка возникает из-за того, что коллация базы данных отличается от коллации базы данных tempdb (т.е. самого сервера).

Collation (сопоставление) определяет ряд правил, согласно которым сортируются и сравниваются данные. Символьные данные сортируются, используя правила, которые определяют правильную последовательность символов, в зависимости от регистра, надстрочных знаков, символьных типов kana и ширины символов.

Как изменить коллацию БД описано здесь

Алла Савельева,

Благодарю!

Показать все комментарии