SQL Server: tentando criar exibição dentro de um procedimento armazenado

Estou tentando criar minha visão dentro do procedimento armazenado, mas enfrentei um erro.

Meu código é:

    alter PROCEDURE p.Azmoon1 
    AS
    begin
       EXEC ('IF OBJECT_ID (''r.r_Sales01_Requests__Duplicates'', ''V'') IS NOT NULL
            DROP VIEW r.r_Sales01_Requests__Duplicates ;
            go
            create view r.r_Sales01_Requests__Duplicates ( 
             CompanyID
            ,Branch
            ,Year
            ,VoucherType,VoucherNumber
            ,Date_Persian
            ,Row
        ) as
        select 
             CompanyID
            ,Branch
            ,Year
            ,VoucherType,VoucherNumber
            ,Date_Persian
            ,Row
        from t_SalesRequests
        group by CompanyID,Branch,Year,VoucherType,VoucherNumber,Date_Persian,Row
        having count(*)>1

        go

    ')
    end

Quando ligo para o meu procedimento como abaixo:

execute p.Azmoon1 

Eu recebi estes erros:

Sintaxe incorreta perto de 'go'
'CREATE VIEW' deve ser a primeira instrução em um lote de consulta.
Nível máximo de procedimento armazenado, função, gatilho ou exibição aninhado excedido (limite 32).

questionAnswers(1)

yourAnswerToTheQuestion