1
resposta

Observação sobre CREATE, ALTER ou DROP FUNCTION, PROCEDURE

Pessoal, neste caso não seria uma dúvida e sim uma dica beleza ? Notei que no final deste vídeo (Excluindo uma função) do curso (SQL Server: T-SQL com Microsoft SQL Server 2017) é dito que sempre o CREATE FUNCTION ou até um CREATE PROCEDURE necessita estar no começo do código, porém, tem como executar sim com mais comando adicionando um comando simples no final de cada bloco, o (GO).

O (GO) não é um comando do T-SQL, porém, são reconhecidos pelos utilitários sqlcmd e osql e pelo edito de códigos SQL Server Management Studio. Estes comandos podem ser usados para facilitar a legibilidade e a execução de lotes e scripts. O GO sinaliza o término de um lote de instruções Transact-SQL para os utilitários do SQL Server. Está informação é do site da Microsoft (https://docs.microsoft.com/pt-br/sql/t-sql/language-elements/sql-server-utilities-statements-go?view=sql-server-ver15).

Quando utilizamos o (GO) no final de um lote de script é como se finalizássemos e poderíamos ir para o próximo e pensando no caso deste vídeo de (CREATE FUNCTION ou DROP FUNCTION) este comando funciona bem e você consegue rodar ambos códigos se inserir o (GO) no final do primeiro lote.

Abaixo deixarei um exemplo do código e espero que ajude quem estiver lendo!

IF OBJECT_ID ('EnderecoCompleto2', 'FN') IS NOT NULL
DROP FUNCTION EnderecoCompleto2
GO

CREATE FUNCTION EnderecoCompleto2
(
     @ENDERECO VARCHAR(150)
    ,@CIDADE VARCHAR (50)
    ,@ESTADO VARCHAR(50)
    ,@CEP VARCHAR (20)
)
RETURNS VARCHAR (250)
AS
BEGIN
    DECLARE @ENDERECO_COMPLETO VARCHAR(250)
    SET @ENDERECO_COMPLETO = @ENDERECO + ' - ' + @CIDADE + ' - ' + @ESTADO + ' - ' + @CEP
    RETURN @ENDERECO_COMPLETO
END
GO

SELECT CPF, [dbo].[EnderecoCompleto] ([ENDERECO 1], [CIDADE], [ESTADO], [CEP]) AS END_COMPLETO FROM [dbo].[TABELA DE CLIENTES]
GO

Valeu!

1 resposta

Olá Luiz, tudo bem?

Bela observação Luiz, ao utilizar o comando GO é possível executar vários lotes de scripts, resolvendo assim, o problema apontado pelo instrutor durante o vídeo. Foi bem legal você ter compartilhado aqui com a gente sobre esse ponto, poderá ajudar outros alunos, como também nos ajudar a melhorar cada vez mais os nossos cursos :).

Continue assim e bons estudos Luiz!!!