CRUD Procedures for DROUsage records

getAffectedDROUsages - used when an RO Value is changed
Added "WITH EXECUTE AS OWNER" to a number of Procedures and Functions
Added DROUsages to vesp_SearchROItemAndChildren
This commit is contained in:
Rich 2011-01-20 20:19:33 +00:00
parent 53b23fe44b
commit fbe94ed3a0

View File

@ -512,6 +512,61 @@ IF (@@Error = 0) PRINT 'Procedure Creation: addDocVersion Succeeded'
ELSE PRINT 'Procedure Creation: addDocVersion Error on Creation'
GO
/****** Object: StoredProcedure [addDROUsage] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [addDROUsage];
GO
CREATE PROCEDURE [dbo].[addDROUsage]
(
@DocID int,
@ROID nvarchar(16),
@Config nvarchar(MAX)=null,
@DTS datetime,
@UserID nvarchar(100),
@RODbID int,
@newDROUsageID int output,
@newLastChanged timestamp output
)
WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
INSERT INTO [DROUsages]
(
[DocID],
[ROID],
[Config],
[DTS],
[UserID],
[RODbID]
)
VALUES
(
@DocID,
@ROID,
@Config,
@DTS,
@UserID,
@RODbID
)
SELECT @newDROUsageID= SCOPE_IDENTITY()
SELECT @newLastChanged=[LastChanged]
FROM [DROUsages] WHERE [DROUsageID]=@newDROUsageID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: addDROUsage Succeeded'
ELSE PRINT 'Procedure Creation: addDROUsage Error on Creation'
GO
/****** Object: StoredProcedure [addEntry] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [addEntry];
@ -2324,6 +2379,8 @@ WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
DELETE [DROUsages]
WHERE [DocID]=@DocID
DELETE [Entries]
WHERE [DocID]=@DocID
DELETE [Documents]
@ -2372,6 +2429,35 @@ IF (@@Error = 0) PRINT 'Procedure Creation: deleteDocVersion Succeeded'
ELSE PRINT 'Procedure Creation: deleteDocVersion Error on Creation'
GO
/****** Object: StoredProcedure [deleteDROUsage] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [deleteDROUsage];
GO
CREATE PROCEDURE [dbo].[deleteDROUsage]
(
@DROUsageID int
)
WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
DELETE [DROUsages]
WHERE [DROUsageID] = @DROUsageID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: deleteDROUsage Succeeded'
ELSE PRINT 'Procedure Creation: deleteDROUsage Error on Creation'
GO
/****** Object: StoredProcedure [deleteEntry] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [deleteEntry];
@ -3019,6 +3105,8 @@ WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
DELETE [DROUsages]
WHERE [RODbID]=@RODbID
DELETE [ROFsts]
WHERE [RODbID]=@RODbID
DELETE [ROImages]
@ -3475,6 +3563,27 @@ IF (@@Error = 0) PRINT 'Procedure Creation: existsDocVersion Succeeded'
ELSE PRINT 'Procedure Creation: existsDocVersion Error on Creation'
GO
/****** Object: StoredProcedure [existsDROUsage] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [existsDROUsage];
GO
CREATE PROCEDURE [dbo].[existsDROUsage]
(
@DROUsageID int
)
WITH EXECUTE AS OWNER
AS
SELECT COUNT(*)
FROM [DROUsages] WHERE [DROUsageID]=@DROUsageID
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: existsDROUsage Succeeded'
ELSE PRINT 'Procedure Creation: existsDROUsage Error on Creation'
GO
/****** Object: StoredProcedure [existsEntry] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [existsEntry];
@ -3896,6 +4005,64 @@ IF (@@Error = 0) PRINT 'Procedure Creation: existsZTransition Succeeded'
ELSE PRINT 'Procedure Creation: existsZTransition Error on Creation'
GO
/****** Object: StoredProcedure [getAffectedDRoUsages] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedDRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAffectedDRoUsages];
GO
/*
getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR'
*/
CREATE PROCEDURE [dbo].[getAffectedDRoUsages]
(
@RODbID int,
@ROID nvarchar(16),
@RODesc nvarchar(MAX),
@Command nvarchar(10),
@UserID nvarchar(100)
)
WITH EXECUTE AS OWNER
AS
BEGIN
DECLARE @typeID int
SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
-- Add "Verification Required" Annotation for each ROUsage
INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID])
SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID
FROM Items where CONTENTID in (SELECT ContentID
FROM DROUsages DR
JOIN Entries EE on EE.DocID = DR.DocID
where RODbID = @RODbID AND SUBSTRING(ROID,1,12) = SUBSTRING(@ROID,1,12))
END
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
[DROUsages].[ROID],
[DROUsages].[Config],
[DROUsages].[DTS],
[DROUsages].[UserID],
[DROUsages].[LastChanged],
[DROUsages].[RODbID],
[Documents].[LibTitle] [Document_LibTitle],
[Documents].[DocContent] [Document_DocContent],
[Documents].[DocAscii] [Document_DocAscii],
[Documents].[Config] [Document_Config],
[Documents].[DTS] [Document_DTS],
[Documents].[UserID] [Document_UserID],
[Documents].[FileExtension] [Document_FileExtension],
[Documents].[DocPdf] [Document_DocPdf]
FROM [DRoUsages]
JOIN [Documents] ON
[Documents].[DocID]=[DROUsages].[DocID]
WHERE
[DRoUsages].[RODbID]=@RODbID AND [DRoUsages].[ROID]=@ROID
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedDRoUsages Succeeded'
ELSE PRINT 'Procedure Creation: getAffectedDRoUsages Error on Creation'
GO
/****** Object: StoredProcedure [getAffectedRoUsages] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getAffectedRoUsages];
@ -3913,8 +4080,8 @@ CREATE PROCEDURE [dbo].[getAffectedRoUsages]
@Command nvarchar(10),
@UserID nvarchar(100)
)
WITH EXECUTE AS OWNER
AS
--if @Command='Deleted'
BEGIN
DECLARE @typeID int
SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
@ -5164,10 +5331,33 @@ AS
[LastChanged],
[FileExtension],
[DocPdf],
(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount],
(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount]
FROM [Documents]
WHERE [DocID]=@DocID
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
[DROUsages].[ROID],
[DROUsages].[Config],
[DROUsages].[DTS],
[DROUsages].[UserID],
[DROUsages].[LastChanged],
[DROUsages].[RODbID],
[RODbs].[ROName] [RODb_ROName],
[RODbs].[FolderPath] [RODb_FolderPath],
[RODbs].[DBConnectionString] [RODb_DBConnectionString],
[RODbs].[Config] [RODb_Config],
[RODbs].[DTS] [RODb_DTS],
[RODbs].[UserID] [RODb_UserID]
FROM [DROUsages]
JOIN [RODbs] ON
[RODbs].[RODbID]=[DROUsages].[RODbID]
WHERE
[DROUsages].[DocID]=@DocID
SELECT
[Entries].[ContentID],
[Entries].[DocID],
@ -5214,6 +5404,7 @@ AS
[LastChanged],
[FileExtension],
[DocPdf],
(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount],
(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount]
FROM [Documents]
RETURN
@ -5442,6 +5633,146 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersionsByItemID Succeeded'
ELSE PRINT 'Procedure Creation: getDocVersionsByItemID Error on Creation'
GO
/****** Object: StoredProcedure [getDROUsage] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getDROUsage];
GO
CREATE PROCEDURE [dbo].[getDROUsage]
(
@DROUsageID int
)
WITH EXECUTE AS OWNER
AS
SELECT
[DROUsageID],
[DocID],
[ROID],
[Config],
[DTS],
[UserID],
[LastChanged],
[RODbID]
FROM [DROUsages]
WHERE [DROUsageID]=@DROUsageID
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsage Succeeded'
ELSE PRINT 'Procedure Creation: getDROUsage Error on Creation'
GO
/****** Object: StoredProcedure [getDROUsages] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getDROUsages];
GO
CREATE PROCEDURE [dbo].[getDROUsages]
WITH EXECUTE AS OWNER
AS
SELECT
[DROUsageID],
[DocID],
[ROID],
[Config],
[DTS],
[UserID],
[LastChanged],
[RODbID]
FROM [DROUsages]
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsages Succeeded'
ELSE PRINT 'Procedure Creation: getDROUsages Error on Creation'
GO
/****** Object: StoredProcedure [getDROUsagesByDocID] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsagesByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getDROUsagesByDocID];
GO
CREATE PROCEDURE [dbo].[getDROUsagesByDocID]
(
@DocID int
)
WITH EXECUTE AS OWNER
AS
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
[DROUsages].[ROID],
[DROUsages].[Config],
[DROUsages].[DTS],
[DROUsages].[UserID],
[DROUsages].[LastChanged],
[DROUsages].[RODbID],
[RODbs].[ROName] [RODb_ROName],
[RODbs].[FolderPath] [RODb_FolderPath],
[RODbs].[DBConnectionString] [RODb_DBConnectionString],
[RODbs].[Config] [RODb_Config],
[RODbs].[DTS] [RODb_DTS],
[RODbs].[UserID] [RODb_UserID]
FROM [DROUsages]
JOIN [RODbs] ON
[RODbs].[RODbID]=[DROUsages].[RODbID]
WHERE
[DROUsages].[DocID]=@DocID
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsagesByDocID Succeeded'
ELSE PRINT 'Procedure Creation: getDROUsagesByDocID Error on Creation'
GO
/****** Object: StoredProcedure [getDROUsagesByRODbID] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsagesByRODbID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getDROUsagesByRODbID];
GO
CREATE PROCEDURE [dbo].[getDROUsagesByRODbID]
(
@RODbID int
)
WITH EXECUTE AS OWNER
AS
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
[DROUsages].[ROID],
[DROUsages].[Config],
[DROUsages].[DTS],
[DROUsages].[UserID],
[DROUsages].[LastChanged],
[DROUsages].[RODbID],
[Documents].[LibTitle] [Document_LibTitle],
[Documents].[DocContent] [Document_DocContent],
[Documents].[DocAscii] [Document_DocAscii],
[Documents].[Config] [Document_Config],
[Documents].[DTS] [Document_DTS],
[Documents].[UserID] [Document_UserID],
[Documents].[FileExtension] [Document_FileExtension],
[Documents].[DocPdf] [Document_DocPdf]
FROM [DROUsages]
JOIN [Documents] ON
[Documents].[DocID]=[DROUsages].[DocID]
WHERE
[DROUsages].[RODbID]=@RODbID
RETURN
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsagesByRODbID Succeeded'
ELSE PRINT 'Procedure Creation: getDROUsagesByRODbID Error on Creation'
GO
/****** Object: StoredProcedure [getEntries] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntries]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [getEntries];
@ -7566,12 +7897,37 @@ AS
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount],
(SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount],
(SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount],
(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount]
FROM [RODbs]
WHERE [RODbID]=@RODbID
SELECT
[DROUsages].[DROUsageID],
[DROUsages].[DocID],
[DROUsages].[ROID],
[DROUsages].[Config],
[DROUsages].[DTS],
[DROUsages].[UserID],
[DROUsages].[LastChanged],
[DROUsages].[RODbID],
[Documents].[LibTitle] [Document_LibTitle],
[Documents].[DocContent] [Document_DocContent],
[Documents].[DocAscii] [Document_DocAscii],
[Documents].[Config] [Document_Config],
[Documents].[DTS] [Document_DTS],
[Documents].[UserID] [Document_UserID],
[Documents].[FileExtension] [Document_FileExtension],
[Documents].[DocPdf] [Document_DocPdf]
FROM [DROUsages]
JOIN [Documents] ON
[Documents].[DocID]=[DROUsages].[DocID]
WHERE
[DROUsages].[RODbID]=@RODbID
SELECT
[ROFsts].[ROFstID],
[ROFsts].[RODbID],
@ -7648,6 +8004,7 @@ AS
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount],
(SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount],
(SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount],
(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount]
@ -7678,6 +8035,7 @@ AS
[DTS],
[UserID],
[LastChanged],
(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount],
(SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount],
(SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount],
(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount]
@ -9223,6 +9581,8 @@ BEGIN TRY -- Try Block
dbcc checkident([Details],reseed,0)
delete from [DocVersions]
dbcc checkident([DocVersions],reseed,0)
delete from [DROUsages]
dbcc checkident([DROUsages],reseed,0)
delete from [Entries]
delete from [Figures]
dbcc checkident([Figures],reseed,0)
@ -9783,6 +10143,61 @@ IF (@@Error = 0) PRINT 'Procedure Creation: updateDocVersion Succeeded'
ELSE PRINT 'Procedure Creation: updateDocVersion Error on Creation'
GO
/****** Object: StoredProcedure [updateDROUsage] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [updateDROUsage];
GO
CREATE PROCEDURE [dbo].[updateDROUsage]
(
@DROUsageID int,
@DocID int,
@ROID nvarchar(16),
@Config nvarchar(MAX)=null,
@DTS datetime,
@UserID nvarchar(100),
@LastChanged timestamp,
@RODbID int,
@newLastChanged timestamp output
)
WITH EXECUTE AS OWNER
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
UPDATE [DROUsages]
SET
[DocID]=@DocID,
[ROID]=@ROID,
[Config]=@Config,
[DTS]=@DTS,
[UserID]=@UserID,
[RODbID]=@RODbID
WHERE [DROUsageID]=@DROUsageID AND [LastChanged]=@LastChanged
IF @@ROWCOUNT = 0
BEGIN
IF NOT exists(select * from [DROUsages] WHERE [DROUsageID]=@DROUsageID)
RAISERROR('DROUsage record has been deleted by another user', 16, 1)
ELSE
RAISERROR('DROUsage has been edited by another user', 16, 1)
END
SELECT @newLastChanged=[LastChanged]
FROM [DROUsages] WHERE [DROUsageID]=@DROUsageID
IF( @@TRANCOUNT > 0 ) COMMIT
END TRY
BEGIN CATCH -- Catch Block
IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback
EXEC vlnErrorHandler
END CATCH
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT 'Procedure Creation: updateDROUsage Succeeded'
ELSE PRINT 'Procedure Creation: updateDROUsage Error on Creation'
GO
/****** Object: StoredProcedure [updateEntry] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
DROP PROCEDURE [updateEntry];
@ -12257,6 +12672,7 @@ select .dbo.vefn_FirstLink('asdasdadsasd' + char(21) + 'asdasdasd\vasdasdasd', 0
-- This is only used for testing by vefn_RemoveExtraText
CREATE FUNCTION [dbo].[vefn_FirstLink](@text nvarchar(MAX),@includeLink int)
RETURNS int
WITH EXECUTE AS OWNER
AS
BEGIN
DECLARE @index int
@ -13403,6 +13819,7 @@ RETURNS @SiblingChildren TABLE
ItemID int PRIMARY KEY,
ContentID int
)
WITH EXECUTE AS OWNER
AS
BEGIN
with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as (
@ -13625,7 +14042,7 @@ select count(*) from parts
*/
CREATE procedure [dbo].[vesp_CleanUpItems]
WITH EXECUTE AS OWNER
as
AS
BEGIN TRY -- Try Block
BEGIN TRANSACTION
BEGIN
@ -14278,7 +14695,7 @@ GO
create procedure [dbo].[vesp_ListTables]
WITH EXECUTE AS OWNER
as
AS
begin
select o.name TableName,c.name ColumnName,
case c.xtype
@ -14314,7 +14731,7 @@ GO
create procedure [dbo].[vesp_ListTables2]
WITH EXECUTE AS OWNER
as
AS
begin
select o.name TableName,c.name ColumnName,
case c.xtype
@ -14362,7 +14779,7 @@ GO
CREATE procedure [dbo].[vesp_ListTables3]
WITH EXECUTE AS OWNER
as
AS
begin
select o.name TableName,c.name ColumnName,
case c.system_type_id
@ -14891,10 +15308,16 @@ select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID
left join Entries E on C.ContentID = E.ContentID
left join Documents D on E.DocID = D.DocID
where
I.ContentID in(select Distinct ContentID from ROUsages RU
I.ContentID in(select ContentID from ROUsages RU
join vefn_SplitROSearch(@ROSearchString) RR
ON RR.RODBID = RU.RODBID and
RU.ROID like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS)
RU.ROID like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS
UNION
select Distinct ContentID from Entries EE
Join DROUsages RU on RU.DocID = EE.DocID
join vefn_SplitROSearch(@ROSearchString) RR
ON RR.RODBID = RU.RODBID and
RU.ROID = RR.ROID)
AND
((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000)
or