CREATE PROCEDURE [dbo].[SetObjectContent]
@Path nvarchar (425),
@Type int,
@Content image = NULL,
@Intermediate uniqueidentifier = NULL,
@Parameter ntext = NULL,
@LinkSourceID uniqueidentifier = NULL,
@MimeType nvarchar (260) = NULL
AS
DECLARE @OldIntermediate as uniqueidentifier
SET @OldIntermediate = (SELECT Intermediate FROM Catalog WITH (XLOCK) WHERE Path = @Path)
UPDATE SnapshotData
SET PermanentRefcount = PermanentRefcount - 1
WHERE SnapshotData.SnapshotDataID = @OldIntermediate
UPDATE Catalog
SET Type=@Type, Content = @Content, Intermediate = @Intermediate, [Parameter] = @Parameter, LinkSourceID = @LinkSourceID, MimeType = @MimeType
WHERE Path = @Path
UPDATE SnapshotData
SET PermanentRefcount = PermanentRefcount + 1, TransientRefcount = TransientRefcount - 1
WHERE SnapshotData.SnapshotDataID = @Intermediate
EXEC FlushReportFromCache @Path
GO
GRANT EXECUTE ON [dbo].[SetObjectContent] TO [RSExecRole]
GO