Как мога да накарам изгледа да показва текущата дефиниция на колона?

Използване на SQL Server Express 2008 & Management Studio.

Имам маса и изглед. По времето, когато е създаден изгледът, колоната FirstName на таблицата беше varchar(50). Променете Table.Firstname да бъде nvarchar(50) и изгледът все още показва, че колоната е varchar(50).

Как да накарам изгледа да показва текущата дефиниция на колона?

Ето какво опитах (което не работи):

  • Щракнете върху бутона Обнови
  • Затворете Management Studio и го отворете отново.

Ето какво проработи:

  • Създайте чисто нов изглед. Новият изглед показва текущата дефиниция на полето

Забележка: Този проект има много изгледи, така че бих предпочел да не се налага да създавам отново всички.


person Mark Maslar    schedule 09.12.2010    source източник


Отговори (2)


Потърсете sys.sp_refreshsqlmodule в Books Online.

person HLGEM    schedule 09.12.2010
comment
Благодаря! В този конкретен случай sp_refreshsqlmodule работи добре за изгледи, които са създадени без СЪС SCHEMABINDING. напр. EXEC sys.sp_refreshsqlmodule 'myDatabase.dbo.myView1' - person Mark Maslar; 10.12.2010

Стартирайте или sp_refreshview, или по-новия sp_refreshsqlmodule

Най-доброто решение е да използвате WITH SCHEMABINDING, така че това да не може да се случи.

Доста често срещано в SO, пример тук

person gbn    schedule 09.12.2010