A finalidade de vincular um esquema a uma exibição é garantir que as tabelas base referenciadas na exibição não possam ser modificadas de uma forma que afete a definição da exibição.
Isso normalmente é uma coisa boa. Afinal, você não quer alguém vindo e derrubando uma mesa da qual sua visão depende, não é?
Mas e se você precisar fazer alterações em uma ou mais tabelas referenciadas pela sua visão?
Nesse caso, você pode remover a vinculação de esquema de uma exibição, fazer as alterações na(s) tabela(s) base e reaplicar a vinculação de esquema.
Há duas maneiras de remover a vinculação de esquema de uma visualização:
- Altere a visualização para que sua definição não especifique mais a vinculação de esquema.
- Retire a visualização (em seguida, recrie-a sem vinculação de esquema, se necessário).
Exemplo de uma visualização vinculada ao esquema
Primeiro, aqui está um exemplo de uma visualização vinculada ao esquema:
CREATE VIEW dbo.v_Cats WITH SCHEMABINDING AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Sabemos que é uma visualização vinculada ao esquema porque contém
WITH SCHEMABINDING
em sua definição. Para remover a ligação de esquema, tudo o que precisamos fazer é remover esse bit. Opção 1 – Alterar a visualização
Para remover a vinculação de esquema dessa visualização alterando-a, podemos usar o seguinte código:
ALTER VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Tudo o que fizemos foi alterar
CREATE
para ALTER
, e remova WITH SCHEMABINDING
. Opção 2 – Abandone a visualização
Aqui está um exemplo de como descartar a exibição e recriá-la sem vinculação de esquema:
DROP VIEW IF EXISTS dbo.v_Cats; GO CREATE VIEW dbo.v_Cats AS SELECT CatId, CatName, Phone FROM dbo.Cats; GO
Nesse caso, usei a sintaxe DROP IF EXISTS, que evita que ocorra um erro caso a view não exista.