Как мы можем изменить представление в хранимой процедуре?Alter View in хранимая процедура
create procedure createviewupdatepenaltypointsconsecutive
as
begin
alter VIEW consecutive
as
WITH cte as (
SELECT *,
LAG([pointsRewarded], 1) OVER (PARTITION BY [EmployeeID] ORDER BY [WeekNumber]) as prev1_points,
LAG([pointsRewarded], 2) OVER (PARTITION BY [EmployeeID] ORDER BY [WeekNumber]) as prev2_points,
LAG([pointsRewarded], 3) OVER (PARTITION BY [EmployeeID] ORDER BY [WeekNumber]) as prev3_points
FROM week1
)
SELECT *,
CASE WHEN [pointsRewarded] = -10 AND prev1_points = -10 AND prev2_points = -10 AND prev3_points = -10
THEN -200
WHEN [pointsRewarded] = -10 AND prev1_points = -10 AND prev2_points = -10
THEN -100
WHEN [pointsRewarded] = -10 AND prev1_points = -10
THEN -50
ELSE 0
END penalty
FROM cte
end
M получаю эту ошибку: Msg 156, Level 15, State 1, процедура createviewupdatepenaltypointsconsecutive, строка 4 Неправильный синтаксис около ключевого слова 'VIEW'. Msg 319, уровень 15, состояние 1, процедура createviewupdatepenaltypointsconsecutive, строка 8 Неверный синтаксис рядом с ключевым словом 'with'. Если этот оператор является общим табличным выражением, предложением xmlnamespaces или предложением контекста отслеживания изменений, предыдущий оператор должен быть прерван точкой с запятой.
Какой смысл повторного создания представления в эта процедура? По-видимому, определение вида никак не изменяется, хранимая процедура не применяет никакой логики и не принимает никаких параметров. –
Проблема, которую я пытаюсь решить, заключается в том, что я помещаю представление в хранимую процедуру. –