Fixed logic to find ROs in procedure text.

This commit is contained in:
Rich 2013-05-23 20:40:09 +00:00
parent e3430c7416
commit ebccc32e4e

View File

@ -6948,3 +6948,57 @@ GO
IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerON Succeeded'
ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerON Error on Creation'
GO
/****** Object: TableFunction [vefn_FindROUsageIDs] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindROUsageIDs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1)
DROP FUNCTION [vefn_FindROUsageIDs];
GO
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
CREATE FUNCTION [dbo].[vefn_FindROUsageIDs](@ContentAuditID int)
RETURNS @IDs TABLE
(
ROUsageID int PRIMARY KEY,
ROUsageAction char(3)
)
WITH EXECUTE AS OWNER
AS
BEGIN
DECLARE @ContentID int
DECLARE @text varchar(max)
SELECT @ContentID = ContentID,@text = Text FROM ContentAudits WHERE AuditID = @ContentAuditID
DECLARE @index1 int
DECLARE @index2 int
DECLARE @tid varchar(max)
DECLARE @trid int
WHILE (LEN(@text) > 0)
BEGIN
SET @index1 = CHARINDEX('#Link:ReferencedObject' , @text)
IF (@index1 > 0)
BEGIN
SET @text = RIGHT(@text, (LEN(@text) - (22 + @index1)))
SET @index1 = CHARINDEX(' ', @text)
SET @tid = LTRIM(LEFT(@text, @index1))
SET @trid = CAST(@tid AS INT)
IF EXISTS (SELECT ROUsageID FROM tblROUsages WHERE ROUsageID = @trid AND DeleteStatus < 0)
INSERT INTO @IDs VALUES (@trid, 'ADD')
ELSE
INSERT INTO @IDs VALUES (@trid, NULL)
END
ELSE
SET @text = ''
END
INSERT INTO @IDs SELECT tt.ROUsageID,'DEL' FROM tblROUsages tt LEFT JOIN @IDs ti ON tt.ROUsageID = ti.ROUsageID WHERE tt.ContentID = @ContentID
AND ti.ROUsageID IS NULL
DELETE FROM @IDs WHERE ROUsageAction IS NULL
RETURN
END
GO
-- Display the status of func creation
IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindROUsageIDs Succeeded'
ELSE PRINT 'TableFunction Creation: vefn_FindROUsageIDs Error on Creation'
GO