the answers is NO because SQL Server stores only metadata information describing the view, its columns,security and dependencies when you create View.
But SQL server provides another way to refresh view after updating underlying table schema,by using the sp_refreshview stored procedure we can refresh view.
The below example shows about refreshing view
CREATE TABLE dbo.emp(id int, emp_id int);
INSERT INTO dbo.T1(id , emp_id) VALUES(1, 2);
GO
CREATE VIEW dbo.view_test
AS
SELECT * FROM dbo.emp;
GO
In the above example SQL Server stored metadata information about the columns that existed at that point in time.
Run the following code to query the view
SELECT * FROM dbo.view_test;
You get the following output with both columns:
id | emp_id |
1 | 2 |
Next, add a column to emp:
ALTER TABLE dbo.emp ADD emp_name varchar(100)
Now the schema change in emp was not reflected in the view’s metadata information. As far as SQL Server is concerned, the view still has just two columns. If you execute the previous
SELECT query again, you still get only two columns in the output:
id | emp_id |
1 | 2 |
To refresh the view’s metadata information, run the sp_refreshview stored procedure
against view_test
EXEC sp_refreshview 'dbo.view_test'
Execute the previous SELECT query again, and you get the following output, which includes the new column
id | emp_id | emp_name |
1 | 2 | NULL |
No comments:
Post a Comment