IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'Microsoft_SystemCenter_Visualization_Library_RawValuesTableType' AND schema_id = SCHEMA_ID('SDK'))
BEGIN
EXECUTE ('CREATE TYPE SDK.Microsoft_SystemCenter_Visualization_Library_RawValuesTableType AS TABLE ( DataPointTime datetime, Value float )')
END
GO
IF NOT EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet' AND UID = SCHEMA_ID('SDK'))
BEGIN
EXECUTE ('CREATE PROCEDURE SDK.Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet AS RETURN 1')
END
GO
ALTER PROCEDURE [SDK].[Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet]
@StartTime datetime
,@EndTime datetime
,@ManagedEntityRowId int
,@PerfRuleInstanceRowId int
,@NumberOfDataPoints int
,@RequestedDataPointType int
,@TableValuedParam SDK.Microsoft_SystemCenter_Visualization_Library_RawValuesTableType READONLY
AS
BEGIN
SET NOCOUNT ON
DECLARE
@ErrorInd bit
,@ErrorMessage nvarchar(max)
,@ErrorNumber int
,@ErrorSeverity int
,@ErrorState int
,@ErrorLine int
,@ErrorProcedure nvarchar(256)
,@ErrorMessageText nvarchar(max)
SET @ErrorInd = 0
/* ------------------------------ */
DECLARE @Error int
DECLARE @ExecError int
BEGIN TRY
IF @ManagedEntityRowId IS NULL
BEGIN
RAISERROR (777971002, 16, 1
,0
,0
,0
,N'SDK.Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet'
,0
,N'Non existent managed entity'
)
END
IF (@RequestedDataPointType != 4 AND
@RequestedDataPointType != 5 AND
@RequestedDataPointType != 6)
BEGIN
RAISERROR (777971002, 16, 1
,0
,0
,0
,N'SDK.Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet'
,0
,N'Invalid DataPointReductionMethod - only 4, 5, and 6 are supported'
)
END
/* ------------------------------ */
IF (@RequestedDataPointType = 4)
BEGIN
EXEC [SDK].[Microsoft_SystemCenter_Visualization_Library_PerfDataWithAverageReductionFromTableValuedParamGet]
@StartTime,
@EndTime,
@NumberOfDataPoints,
@TableValuedParam
END
ELSE IF (@RequestedDataPointType = 5)
BEGIN
EXEC [SDK].[Microsoft_SystemCenter_Visualization_Library_PerfDataWithMinMaxReductionGet]
@StartTime,
@EndTime,
@ManagedEntityRowId,
@PerfRuleInstanceRowId,
@NumberOfDataPoints,
0
END
ELSE IF (@RequestedDataPointType = 6)
BEGIN
EXEC [SDK].[Microsoft_SystemCenter_Visualization_Library_PerfDataWithEveryNthReductionGet]
@StartTime,
@EndTime,
@ManagedEntityRowId,
@PerfRuleInstanceRowId,
@NumberOfDataPoints,
0
END
ELSE
BEGIN
RAISERROR (777971002, 16, 1
,0
,0
,0
,N'SDK.Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet'
,0
,N'Invalid @RequestedDataPointType - only 4, 5, and 6 are supported'
)
END
END TRY
BEGIN CATCH
IF (@@TRANCOUNT > 0)
ROLLBACK TRAN
-- report error if any
IF (@ErrorInd = 1)
BEGIN
DECLARE @AdjustedErrorSeverity int
SET @AdjustedErrorSeverity = CASE
WHEN @ErrorSeverity > 18 THEN 18
ELSE @ErrorSeverity
END
RAISERROR (777971002, @AdjustedErrorSeverity, 1
,@ErrorNumber
,@ErrorSeverity
,@ErrorState
,@ErrorProcedure
,@ErrorLine
,@ErrorMessageText
)
END
END
GO
GRANT EXECUTE ON [SDK].[Microsoft_SystemCenter_Visualization_Library_PerfDataWithReductionFromTableValuedParamGet] TO OpsMgrReader
GRANT EXECUTE ON TYPE::[SDK].[Microsoft_SystemCenter_Visualization_Library_RawValuesTableType] TO OpsMgrReader
GO