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.