Determine whether columns have
been added to or deleted from the table since the view was created.
Perform these queries when dbcc
upgrade_object reports the existence of select * in a view:
Compare the output of syscolumns for the original
view to the output of the table.
In this example, you have the following statement:
create view all_emps as select * from employees
Warning!
Do not execute a select * statement
from the view. Doing so upgrades the view and overwrites the information
about the original column information in syscolumns.
Before upgrading the all_emps view,
use these queries to determine the number of columns in
the original view and the number of columns in the updated table:
select name from syscolumns
where id = object_id("all_emps")
select name from syscolumns
where id = object_id("employees")
Compare the output of the two queries by running sp_help on both the view and the tables that comprise the view.
This comparison works only for views, not for other compiled
objects. To determine whether select * statements
in other compiled objects need to be revised, review the source
text of each compiled object.
If the table contains more columns than the view, retain the preupgrade
results of the select * statement. Change the
select * statement to a select statement with specific column
names.
If the view was created from multiple
tables, check the columns in all tables that comprise the view and
rewrite the select statement if necessary.