MySQLでもSQLServerでも列追加はビューに反映されない。列追加した場合、ビューの再作成は必要。
SQLServerドキュメント
ビューが 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;