ビューには元テーブルの列追加が反映されない。

MySQLでもSQLServerでも列追加はビューに反映されない。列追加した場合、ビューの再作成は必要。

SQLServerドキュメント

https://learn.microsoft.com/ja-jp/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver16

ビューが SCHEMABINDING 句を使用して作成したものでない場合、ビューの基になっているオブジェクトに対して、ビューの定義に影響するような変更が行われた際には、sp_refreshview を実行します。 それ以外の場合は、ビューのクエリ時に、予期しない結果が生成される可能性があります。

MySQLドキュメント

https://dev.mysql.com/doc/refman/8.0/ja/create-view.html

ビュー定義は作成時の「「冷凍」」であり、基礎となるテーブルの定義に対する後続の変更の影響を受けません。 たとえば、ビューがテーブルで SELECT * として定義されている場合、後でテーブルに追加された新しいカラムはビューの一部にならず、テーブルから削除されたカラムはビューからの選択時にエラーになります。

動作検証(MySQL, SQLServerともに列追加はビューに反映されない)

-- viewを作成する
create table test(col1 varchar(10), col2 varchar(10));
insert into test values ('hoge', 'fuga');
create view test_v as select * from test;
select * from test;    -- col1, col2 列が表示される
select * from test_v;  -- col1, col2 列が表示される
-- 元テーブルにcol3列を追加する
alter table test add col3 varchar(10) not null default 'piyo';
select * from test;    --    col1, col2, col3 列が表示される
select * from test_v;  --  **col1, col2       列が表示される**
-- 後始末
drop table test;
drop view test_v;