Como inserir dados com um procedimento armazenado no SQL Server?

Como usar variáveis T-SQL para inserir dados usando um procedimento armazenado do SQL Server?

Tutorial sobre como Inserir dados com um procedimento armazenado no SQL Server usando variáveis T-SQL. E também como mostrar ou ocultar o número de linhas inseridas pelo procedimento. Este exemplo de um procedimento T-SQL insere linhas numa tabela de clientes. Este é um tutorial de 3 passos para aprender como inserir linhas a partir de um procedimento armazenado com variáveis.

1. Criar a tabela de vendas para usar no procedimento

Primeiro, verifique se a tabela de clientes exemplo não existe. Se a tabela existir, então apague-a com o comando DROP TABLE. Em seguida, crie a tabela de clientes para inserir as linhas do exemplo.

-- Testar se a tabela CLIENTES já existe
-- E apagá-la se necessário
IF EXISTS(
   SELECT 1 FROM sys.objects
   WHERE  object_id = object_id(N'[dbo].[CLIENTES]')
      AND type in (N'U')
)
DROP TABLE [dbo].[CLIENTES]
GO
-- Criar a tabela CLIENTES com a coluna NOME declarada como ÚNICA
-- A palavra-chave ÚNICA define a coluna com um valor único
-- Inserir dois clientes com o mesmo nome é, portanto, impossível
CREATE TABLE [dbo].[CLIENTES] (
   [CLIENTID] int IDENTITY(1,1),
   [NOME] nvarchar(20) UNIQUE,
   [CIDADE] nvarchar(20)
)
GO

2. Criar o procedimento armazenado do SQL Server para inserir dados

Primeiro verifique se o procedimento armazenado já existe na base de dados e apague-o se necessário. Em segundo lugar, crie o procedimento armazenado uspInsertClient para inserir dois campos passados como parâmetros, nome e cidade, na tabela de clientes.

IF EXISTS( 
  SELECT 1 FROM sys.objects 
  WHERE object_id = object_id(N'uspInsertCliente')
  AND type in (N'P') )
DROP PROCEDURE uspInsertCliente;
GO
CREATE PROCEDURE dbo.uspInsertCliente
  @Nome nvarchar(20),
  @Cidade nvarchar(20)
AS
BEGIN
  INSERT INTO dbo.Clientes (Nome, Cidade) 
  VALUES (@Nome, @Cidade);
END;
GO

Execute o procedimento três vezes para inserir novos clientes na tabela.

-- Desativar a opção de ocultar o número de inserções
SET NOCOUNT OFF;
-- Inserir três novos clientes
EXECUTE dbo.uspInsertCliente @Nome = 'MAMMADOU', @Cidade = 'Toulouse';
EXECUTE dbo.uspInsertCliente @Nome = 'KARIM', @Cidade = 'Nantes';
EXECUTE dbo.uspInsertCliente @Nome = 'ISAAC', @Cidade = 'Versailles';
Inserir dados a partir de um procedimento armazenado do SQL Server com o SSMS
Inserir dados a partir de um procedimento armazenado do SQL Server com o SSMS

Este exemplo de uma consulta de inserção no procedimento armazenado do SQL Server é usado para inserir linhas numa tabela. O código verifica a existência do procedimento previamente para evitar erros na criação. O código facilita a chamada do procedimento criado com os parâmetros. E assim, padronizar a inserção de dados nesta tabela.

3. Opção para ocultar o número de linhas inseridas

Quando você insere dados a partir de um procedimento do SQL Server, por padrão, o sistema exibe o número de linhas inseridas. O comando SET NOCOUNT ON diz ao SQL Server para não exibir o número de linhas afetadas. No nosso caso, inseridas pela consulta SQL INSERT. Assim, se a opção estiver ativada, o número de linhas não é mostrado, como no exemplo abaixo. Esta opção de exibição permite evitar poluir arquivos ou tabelas de log durante a execução de procedimentos armazenados complexos.

-- Desativar a opção de ocultar o número de inserções
SET NOCOUNT ON;
-- Inserir três clientes com a opção ativada
EXECUTE dbo.uspInsertCliente @Nome = 'ISACH', @Cidade = 'Lille';
EXECUTE dbo.uspInsertCliente @Nome = 'AHMED', @Cidade = 'Bordeaux';
EXECUTE dbo.uspInsertCliente @Nome = 'YANIS', @Cidade = 'Marseille';

Por fim, verifique o resultado da consulta e leia os dados com uma consulta SELECT na tabela de clientes. Note que os três clientes estão presentes duas vezes cada na tabela. Isto corresponde às seis execuções do comando SQL. Ou seja, três vezes com a opção de exibição de contagem de linhas ligada e três vezes com a opção de exibição desligada.

SELECT *
FROM dbo.Clientes;

Este tutorial de desenvolvimento T-SQL explica como inserir dados a partir de um procedimento armazenado do SQL Server. Finalmente, aqui está um tutorial sobre como criar um procedimento armazenado SQL que retorna valores com a opção OUTPUT.

Conclusão sobre a inserção de dados usando procedimentos armazenados do SQL Server

Este tutorial T-SQL explica como criar uma tabela de vendas e um procedimento armazenado do SQL Server, e finalmente inserir dados usando variáveis. O tutorial também ensina como controlar a exibição do número de linhas inseridas usando o comando SET NOCOUNT. Seguindo estes passos, é possível padronizar efetivamente a inserção de dados e gerenciar a exibição de contagens de linhas para procedimentos armazenados mais complexos.

Para concluir, é importante destacar que este é um exemplo de como inserir dados usando um procedimento armazenado do SQL Server. Você pode utilizar procedimentos armazenados para inserir dados em múltiplas tabelas no SQL Server, o que torna o processo mais eficiente e organizado. Além disso, é possível usar procedimentos armazenados para inserir dados em tabelas no MySQL, que também suporta esta funcionalidade.

Para executar a inserção de dados em múltiplas tabelas, você deve fornecer os parâmetros correspondentes às colunas das tabelas nas quais deseja inserir os dados. Em seguida, no corpo do procedimento armazenado, você pode usar esses parâmetros para executar comandos de inserção em cada uma das tabelas relevantes.

Ao trabalhar com procedimentos armazenados, é crucial verificar se eles já existem na base de dados antes de tentar criá-los. Isso é especialmente importante quando você está desenvolvendo e testando novos procedimentos armazenados, pois tentar criar um procedimento que já existe resultará em um erro.

Em suma, os procedimentos armazenados oferecem uma maneira poderosa e flexível de manipular dados em bancos de dados do SQL Server. Eles permitem que você encapsule a lógica de manipulação de dados em um único pacote reutilizável, tornando seu código mais organizado, mais fácil de manter e mais eficiente.

Be the first to comment

Leave a Reply

Your email address will not be published.


*