diff --git a/PROMS/SQL/PROMS2010.SQL b/PROMS/SQL/PROMS2010.SQL index cba8022b..804bfaa9 100644 --- a/PROMS/SQL/PROMS2010.SQL +++ b/PROMS/SQL/PROMS2010.SQL @@ -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