Fórum SQL SERVER 2008 Inserindo dados em uma tabela. #524532
30/06/2015
0
tenho uma tabela com a seguinte estrutura
CREATE TABLE PAT_TIPO_ENTRADA (
TPE_COD INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
TPE_NOME VARCHAR(100),
TPE_NUMERO VARCHAR(15),
TPE_POSSE CHAR(1),
TPE_DOACAO CHAR(1)
)
e nela já existe os dados vou dar como exemplo : 1,FTC,2,S,N
o negocio é o seguinte, eu quero dar um insert nessa mesma tabela só que o insert tem que verificar se já existe essa informação na tabela e se não existe ele inseri os dados, caso exista ele não faz nada.
Cleiton Conceição
Curtir tópico
+ 0Post mais votado
01/07/2015
--Cria Tabela
CREATE TABLE TbTeste
(id int, nome varchar(10), tel varchar(10));
GO
--Declara variáveis
Declare @id int, @nome varchar(10), @tel varchar(10)
--Seta os valores do insert nas variáveis
set @id = '1'
set @nome = 'Cleiton'
set @tel = '11111111'
--Busca se um valor já existe (estou setando isso na cláusula where)
If Exists (Select * from TbTeste where id = @id or nome=@nome or tel = @tel )
begin
--Se o valor existir, exibe mensagem
print ('Já existe um valor cadastrado')
end
else
begin
--Se o valor não existir, realiza o insert
Insert into TbTeste (id,nome,tel) values (@id,@nome,@tel)
select * from TbTeste
end
Eu já coloquei a explicação no próprio código. Se precisar de mais explicações, avisa que tento ser mais claro.
Randrade
Gostei + 2
Mais Posts
01/07/2015
Mariana Carvalho
Gostei + 0
01/07/2015
Cleiton Conceição
Gostei + 0
01/07/2015
Randrade
Todos os campos devem ser diferentes? Nome, número, posse e doação?
CREATE TABLE PAT_TIPO_ENTRADA ( TPE_COD INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, TPE_NOME VARCHAR(100), TPE_NUMERO VARCHAR(15), TPE_POSSE CHAR(1), TPE_DOACAO CHAR(1) )
P.S: Utilize a tag code </>, ao postar algum código em suas perguntas ou respostas.
Gostei + 0
01/07/2015
Mariana Carvalho
Gostei + 0
02/07/2015
Cleiton Conceição
só tem um porém eu quero inserir vários dados e não to conseguindo.
tipo assim.
set @TPE_NOME = 'c,''cc'
set @TPE_NUMERO = '4','5'
set @TPE_POSSE = 'rs,''t'
set @TPE_DOACAO='k','o'
ta dando erro de sintaxe.
Gostei + 0
03/07/2015
Lucas Ramos
insert into PAT_TIPO_ENTRADA (
TPE_NOME ,
TPE_NUMERO,
TPE_POSSE,
TPE_DOACAO)
select a.TPE_NOME ,
a.TPE_NUMERO,
a.TPE_POSSE,
a.TPE_DOACAO
from TABELA_DE_ONDE_VEM_OS_DADOS a
left JOIN PAT_TIPO_ENTRADA b on a.TPE_NOME = b.TPE_NOME
and a.TPE_NUMERO = b.TPE_NUMERO
and a.TPE_POSSE = b.TPE_POSSE
and a.TPE_DOACAO = b.TPE_DOACAO
where b.TPE_COD is null
Gostei + 0
03/07/2015
Cleiton Conceição
Gostei + 0
03/07/2015
Lucas Ramos
insert into [192.168.0.1].[BANCO_DE_DADOS].[dbo].[PAT_TIPO_ENTRADA] (
TPE_NOME ,
TPE_NUMERO,
TPE_POSSE,
TPE_DOACAO)
select a.TPE_NOME ,
a.TPE_NUMERO,
a.TPE_POSSE,
a.TPE_DOACAO
from TABELA_DE_ONDE_VEM_OS_DADOS a
left JOIN [192.168.0.1].[BANCO_DE_DADOS].[dbo].[PAT_TIPO_ENTRADA] b on a.TPE_NOME = b.TPE_NOME
and a.TPE_NUMERO = b.TPE_NUMERO
and a.TPE_POSSE = b.TPE_POSSE
and a.TPE_DOACAO = b.TPE_DOACAO
where b.TPE_COD is null
se for na mesma instância
insert into [BANCO_DE_DADOS]..[PAT_TIPO_ENTRADA] (
TPE_NOME ,
TPE_NUMERO,
TPE_POSSE,
TPE_DOACAO)
select a.TPE_NOME ,
a.TPE_NUMERO,
a.TPE_POSSE,
a.TPE_DOACAO
from TABELA_DE_ONDE_VEM_OS_DADOS a
left JOIN [BANCO_DE_DADOS]..[PAT_TIPO_ENTRADA] b on a.TPE_NOME = b.TPE_NOME
and a.TPE_NUMERO = b.TPE_NUMERO
and a.TPE_POSSE = b.TPE_POSSE
and a.TPE_DOACAO = b.TPE_DOACAO
where b.TPE_COD is null
Gostei + 0
04/07/2015
Randrade
Gostei + 0
04/07/2015
Cleiton Conceição
no local onde vai ser executado o código não tenho acesso. e n sei se existe esses dados na tabela.
o exemplo de lucas não me ajuda pq ele quer pegar os dados de uma tabela para outra e verificar se existe a informação ou não.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)