Jag har en massa vyer (MSSQL2000) som är gjorda genom att ta 'SELECT * FROM' detta innebär att när man lägger till en ny kolumn i en tabell, så slutar vyerna att fungera. Går man däremot in på varje vy (redigeringsläge) och stänger så uppdateras den korrekt.
Lite jobbigt att göra på alla vyer då de är så många.
Jag har hört talas om att det finns nån system-procedur som man kan nyttja för att uppdatera alla vyer i en databas.
Finns det någon vänlig människa som vet hur man kan göra detta?
Red. Tydligen så heter proceduren: sp_refreshview [vynamn].
Men hur gör man om man vill uppdatera ALLA vyer i en speciell databas?
USE [databas];
GO
SET NOCOUNT ON;
DECLARE @View sysname, @Error int
DECLARE UpdateView CURSOR FOR
select table_name from INFORMATION_SCHEMA.tables where table_type = 'VIEW'
OPEN UpdateView
FETCH NEXT FROM UpdateView
INTO @View
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_refreshview @View
PRINT @View+' uppdaterades'
SET @Error = @@ERROR
IF @Error <>0
BEGIN
PRINT '- error'
END
FETCH NEXT FROM UpdateView
INTO @View
END
CLOSE UpdateView
DEALLOCATE UpdateView
142 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5