0
我試圖修改SQL 2000中現有的SPROC。最初的SPROC使用FuncView作爲遊標的一部分。新的報告不需要遊標,但我不確定如何在遊標語句之外執行FuncView。下面的第一個例子是原始代碼的遊標部分。第二個是我的修改....以及由此產生的錯誤消息。請幫忙...在存儲過程中執行FuncView
DECLARE @FuncView_PlantConditionAssessmentMetrics VARCHAR(8000)
DECLARE FuncView_PlantConditionAssessmentMetricsCursor CURSOR FOR
Select
'UPDATE #rsTemp
SET TotalComponentsOnTask = rsMetric.TotalComponentsOnTask,
TotalComponentsAssessedMeasured = rsMetric.TotalComponentsAssessedMeasured,
TotalComponentsNotMeasured = rsMetric.TotalComponentsNotMeasured,
TotalComponentsAssessedNotMeasured = rsMetric.TotalComponentsAssessedNotMeasured,
OverdueElevatedItems = rsMetric.OverdueElevatedItems,
OverdueAdvisoryItems = rsMetric.OverdueAdvisoryItems
FROM ['+DBCatalog+'].[dbo].FuncView_PlantConditionAssessmentMetrics ('''+CONVERT(varchar(50), @StartDate, 100)+''','''+ CONVERT(varchar(50), @EndDate, 100)+''') rsMetric
WHERE DBCatalog = '''+DBCatalog+''''
FROM [HostedTangoSettingsSQL].[dbo].[DatabaseTable]
WHERE CustomerID = @CustomerID
AND
HostedDBTypeID IN (SELECT HostedDBTypeID FROM [HostedTangoSettingsSQL].[dbo].defs_HostedDBTypes
WHERE IsActiveDatabase = 1 AND HostedDBTypeID <> 3)
OPEN FuncView_PlantConditionAssessmentMetricsCursor
FETCH NEXT FROM FuncView_PlantConditionAssessmentMetricsCursor INTO @FuncView_PlantConditionAssessmentMetrics
WHILE (@@fetch_status <> -1)
BEGIN
EXEC(@FuncView_PlantConditionAssessmentMetrics)
FETCH NEXT FROM FuncView_PlantConditionAssessmentMetricsCursor INTO @FuncView_PlantConditionAssessmentMetrics
END
CLOSE FuncView_PlantConditionAssessmentMetricsCursor
DEALLOCATE FuncView_PlantConditionAssessmentMetricsCursor
DECLARE @FuncView_PlantConditionAssessmentMetrics VARCHAR(8000)
SELECT FuncView_PlantConditionAssessmentMetrics = @FuncView_PlantConditionAssessmentMetrics
'UPDATE #rsTemp
SET TotalComponentsOnTask = rsMetric.TotalComponentsOnTask,
TotalComponentsAssessedMeasured = rsMetric.TotalComponentsAssessedMeasured,
TotalComponentsNotMeasured = rsMetric.TotalComponentsNotMeasured,
TotalComponentsAssessedNotMeasured = rsMetric.TotalComponentsAssessedNotMeasured,
OverdueElevatedItems = rsMetric.OverdueElevatedItems,
OverdueAdvisoryItems = rsMetric.OverdueAdvisoryItems
FROM ['[email protected]+'].[dbo].FuncView_PlantConditionAssessmentMetrics ('''+CONVERT(varchar(50), @StartDate, 100)+''','''+ CONVERT(varchar(50), @EndDate, 100)+''') rsMetric
WHERE DBCatalog = '''[email protected]+''''
Server: Msg 170, Level 15, State 1, Procedure UDR_PlantConditionAssessmentMetrics, Line 54
Line 54: Incorrect syntax near 'UPDATE #rsTemp
SET TotalComponentsOnTask = rsMetric.TotalComponentsOnTask,
TotalComponentsAssessedMeasured = rsMetric.To'.
什麼是「FuncView」?在SQL Server中沒有這樣的術語。 – RBarryYoung 2009-07-13 19:36:11